通過域名或主機名得到ip

function hostnametoip(name:string;var ip:string):boolean;
var
  wsdata:twsadata;
  hostname:array [0..255] of char;
  hostEnt:PHostEnt;
  addr:pchar;
begin
  WsaStartup($0101,wsdata);
  try
     gethostname(hostname,sizeof(hostname));
     strpcopy(hostname,name);
     hostEnt:=gethostbyname(hostname);
     if Assigned(HostEnt) then
        if Assigned(HostEnt^.h_addr_list^) then
           begin
               addr:=hostEnt^.h_addr_list^;
            if Assigned(addr) then
               begin
                  ip:=Format('%d.%d.%d.%d',[byte(addr[0]),byte(addr[1]),byte(addr[2]),byte(addr[3])]);
                  result:=true;
               end
               else result:=false
            end else result:=false
   else result:=false;
  finally
     wsacleanup;
  end;
end; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章