首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问怎么将域名转IP

2012-09-09 
请教如何将域名转IP网上看了很多例子,发现一个问题,很多域名最后解析出来不对,都是同一IP地址。请给个好点

请教如何将域名转IP
网上看了很多例子,发现一个问题,很多域名最后解析出来不对,都是同一IP地址。
请给个好点的办法。
比如以下的方法

procedure TForm1.Button2Click(Sender: TObject);
type
  TinfoList=array[0..20] of PInAddr;
  pInfoList=^TinfoList;
var
  pEnt:PHostEnt;
  p:pInfoList;
  i:integer;

begin
pEnt:=GetHostByName(pchar(edit1.text));

  if pEnt<>nil then
  begin
  i:=0;
  p:=pInfoList(pent^.h_addr_list);
  while p[i]<>nil do
  begin
  ListBox1.Items.Add(StrPas(inet_ntoa(p[i]^)));

  inc(i);
  end;
  end;


end;

很多结果发现都是省级电信的IP,不是实际那个域名的IP

[解决办法]

Delphi(Pascal) code
function HostToIP(Name: string; var Ip: string): Boolean;varwsdata : TWSAData;hostName : array [0..255] of char;hostEnt : PHostEnt;addr : PChar;beginWSAStartup ($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 begin     Result := False;   end;finally   WSACleanup;endend; 

热点排行