var
 i :integer;
 wsadata :Twsadata;
 sip     : String;
 IPADDR:DWORD;
 host :PHOSTENT;
 b:TTreenode;
begin
  search_ip.a:=search_ip.treeview1.Items.add(nil,'IP搜索');
  search_ip.a.ImageIndex:=2;
  search_ip.a.SelectedIndex:=2; WSASTARTUP(2,WSADATA);
 for i:=strtoint(search_ip.ip4.text) to strtoint(search_ip.ip8.text) do
     begin
      if search_ip.break_b then
         begin
           Search_ip.Status.Panels[0].text:='用户停止';
           break;
         end;
      sip:=search_ip.ip1.text+'.'+search_ip.ip2.text+'.'+search_ip.ip3.text+'.'+inttostr(i);
      Search_ip.Status.Panels[0].text:='正在查询'+sip+'.....';
      Ipaddr:=inet_addr(pchar(sip));
      application.ProcessMessages;
      host:=GetHostByaddr(@Ipaddr,length(sip),PF_INET);
      if host<>nil then
         begin
           application.ProcessMessages;
           b:=search_ip.TreeView1.Items.AddChild(search_ip.a,host.h_name);
           b.ImageIndex:=1;
           b.SelectedIndex:=1;
           b:=search_ip.TreeView1.Items.AddChild(b,'ip地址为'+sip);
           b.ImageIndex:=4;
           b.SelectedIndex:=4;
           search_ip.treeview1.fullexpand;
         end else
         begin
           application.ProcessMessages;
           //b:=search_ip.TreeView1.Items.AddChild(search_ip.a,sip+'没有找到');
           b.ImageIndex:=0;
           b.SelectedIndex:=0;         end;
     end;
     WSACLEANUP;
当然了阿