如何获取指定网段所有存在的IP呢?

做一个循环:  
  procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      phe   :   PHostEnt;  
      Buffer   :   array   [0..255]   of   char;  
      GInitData   :   TWSADATA;  
      nLoop:   Integer;  
  begin  
      WSAStartup($101,   GInitData);  
      for   nLoop   :=   xx   to   yy   do   //网段xx~yy  
      begin  
          Buffer:=   Chr(x)   +   Chr(y)   +   Chr(z)   +   Chr(nLoop)   +   Chr(0);  
  //x,y,z为网段地址的前三字节的整数数值  
          phe:=   GetHostByAddr(@Buffer,   Length(Buffer),   PF_INET);  
          if   phe   <>   nil   then   //如果对方主机开通且安装TCP/IP的话,则该IP地址存在  
          MessageBox(Handle,   phe^.h_name,   '存在',   mb_ok);  
      end;  
      WSACleanup;  
  end;

posted @ 2012-01-19 18:04  stma  阅读(683)  评论(0)    收藏  举报