Конференция "Сети" » ip адреса [D7]
 
  • Ден99 (29.01.14 15:07) [0]
    есть 14-адресов...как сделать чтобы на серваке было видно в сети или не в сети конкретный адрес?
  • brother © (29.01.14 16:30) [1]
    пинговать...
    можно dame ware на сервак поставить...
  • brother © (29.01.14 16:31) [2]
    эээ погорячился, лучше NetView
  • Ден99 (29.01.14 17:14) [3]
    Спасибо, но мне бы прогу написать на delphi....просто еще в школе проходил...ни черта не помню)
  • brother © (29.01.14 18:36) [4]
    эээ, зачем? чем не устраивают готовые решения?
  • clickmaker © (29.01.14 18:38) [5]
    TIdICMP ?
  • Ден99 (30.01.14 10:08) [6]
    потому что требуют чтобы я сам написал программу....так сказать обучают
  • DVM © (30.01.14 10:36) [7]

    > есть 14-адресов...как сделать чтобы на серваке было видно
    > в сети или не в сети конкретный адрес?

    Надо дать определение понятию "адрес в сети". Наверное не адрес, а все же хост с адресом, плюс пинг (ICMP) может быть закрыт. Да и вообще все порты закрыты. Хост в сети в таком случае или нет?
  • brother © (30.01.14 11:36) [8]
    > так сказать обучают

    те Ping реализации достаточно? тогда сюда: http://forum.codeby.net/topic20063.html
    или если сложно, то нужно клиент-сервер городить...
  • brother © (30.01.14 11:38) [9]
    зы. надеюсь подсеть ip адресов одна и маска сети 255.255.255.0 ?
  • Ден99 (01.02.14 13:29) [10]
    подсеть одна, а маска сети 255.255.255.240   а клиент-сервер полегче пингования?
  • Ден99 (01.02.14 18:39) [11]
    unit Unit1;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
     IdIcmpClient, StdCtrls;

    type
     TForm1 = class(TForm)
       btn1: TButton;
       lst1: TListBox;
       idcmpclnt1: TIdIcmpClient;
       procedure btn1Click(Sender: TObject);
       procedure idcmpclnt1Reply(ASender: TComponent;
         const AReplyStatus: TReplyStatus);
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.btn1Click(Sender: TObject);
    begin
    idcmpclnt1.Host:='176.194.204.175';
    idcmpclnt1.ReceiveTimeout:=100;
    idcmpclnt1.Ping('32');
    Caption:=IntToStr(idcmpclnt1.ReplyStatus.MsRoundTripTime)
    end;

    procedure TForm1.idcmpclnt1Reply(ASender: TComponent;
     const AReplyStatus: TReplyStatus);
    begin
    try
    if idcmpclnt1.Host=AReplyStatus.FromIpAddress then lst1.Items.Add (AReplyStatus.FromIpAddress);
    except
     on e:Exception do
    end;

    end;
    end.

    Почем она не работает?
  • Ден99 (01.02.14 18:40) [12]
    Удалено модератором
    Примечание: СПАМ
  • NetScan (01.02.14 20:03) [13]
    procedure NetScan(Res: TNetResource; Root: boolean);
     var
     hEnum: cardinal;
     nrResource: array[0..512] of TNetResource;
     dwSize: DWORD;
     numEntries: DWORD;
     i: DWORD;
     dwResult: DWORD;
     Sprev: String;
     slUsers: TStringList;
     begin
      if Root = True then
        dwResult := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
          0, nil, hEnum)
      else
        dwResult := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
          0, @Res, hEnum);
      if dwResult = NO_ERROR then
      begin
       dwSize := SizeOf(nrResource);
       numEntries := DWORD(-1);
       if WNetEnumResource(hEnum, numEntries, @nrResource, dwSize) = NO_ERROR then
        begin
         for i := 0 to numEntries - 1 do
          begin //Stemp:= nrResource[i].lpRemoteName;
           If Copy(nrResource[i].lpRemoteName, 1, 2) = '\\' THEN
            if  nrResource[i].lpRemoteName <> nil then
             begin
    //           Stemp:= nrResource[i].lpRemoteName;
              If Pos('\', Copy(nrResource[i].lpRemoteName,
                          3, Length(nrResource[i].lpRemoteName))) = 0 then
               begin
               
                Form1.NetPCBox.Items.Add(Copy(nrResource[i].lpRemoteName, 3, Length(nrResource[i].lpRemoteName) - 2));
    //             Stemp:= Form1.GetLocalIP(nrResource[i].lpRemoteName);
                if (Form1.GetLocalIP(nrResource[i].lpRemoteName) <> '') And (Stemp <> Sprev) then
                 begin
                  Form1.TreeView1.Items.AddChild(Form1.TreeView1.Items.Item[0],
                    Form1.GetLocalIP(nrResource[i].lpRemoteName) + ' (' + Copy(nrResource[i].lpRemoteName, 3, Length(nrResource[i].lpRemoteName)) + ')' );
                  Form1.StatusBar1.Panels[1].Text:= Form1.StatusBar1.Panels[1].Text + Copy(nrResource[i].lpRemoteName, 3, Length(nrResource[i].lpRemoteName) - 2) + '-';
                  Application.ProcessMessages;
                  Form1.StatusBar1.Panels[2].Text:= 'Всего - ' + IntToStr(PCNetCount + 1);
                  Form1.StatusBar1.Refresh;
                  SPrev:= Stemp;
                  Application.ProcessMessages;
                  PCNetCount:= PCNetCount + 1;
                 end;
               end;
             end;
              Scan(nrResource[i], false);
            end;
          end;
        WNetCloseEnum(hEnum);
      end;
     end;



    ussage:
    NetScan(R, R, True);

    Выведи все активные и проверь, есть ли среди них интересующий тебя адрес
  • NetScan (01.02.14 20:04) [14]
    ussage:
    NetScan(R, True);
 
Конференция "Сети" » ip адреса [D7]
Есть новые Нет новых   [134427   +34][b:0][p:0.002]