域名解析的小问题(100分)

  • 主题发起人 主题发起人 小争
  • 开始时间 开始时间

小争

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个问题,可能对各位很简单,但我对网络编程不熟不知如何下手。
我用花生壳注册了一个域名,如:bluestar.vicp.net 但每次在运行里面
ping bluestar.vicp.net 得到的IP都不一样,所以我想做个程序把ping
完后得到的ip地址放到一个文本文件里,可不知用什么控件能做。有明白
的兄弟请指条明路。
 
Indy-> ICMP
 
WinScok
function TIPManageRdm.PingIP(const IPAddr: WideString): OleVariant;
Var
Msg:String;


wVersionRequested : WORD;
wsaData : TWSAData;
PEvt : PHostEnt;
HostName : array[0..128] of char;
pHostName:Pchar;
pIPAddress:Pchar;

begin
HostName:='';{Init String}
pHostName:=@HostName;
StrPCopy(pHostName,IPAddr);{IPAddr is Computer Name Or Computer IP Address}

{Open WinSock}
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
{Get Computer Name}

PEvt := GetHostByName(pHostName);
if pEvt=nil then
begin
Msg:='Unknown the Host!';
end
else
begin
//ShowMessage(Format('Computer name is ''%s''.', [pEvt^.h_Name]));

{Get IP Address}
pIPAddress := iNet_ntoa(PInAddr(pEvt^.h_addr_list^)^);
//ShowMessage(Format('IP address is %s.',[pIPAddress]));

{Get Computer Name if IPAddr is Computer IP Address}
pEvt:=Winsock.gethostbyaddr(pEvt^.h_addr_list^,0,0);
//ShowMessage(Format('Computer name is ''%s''.', [pEvt^.h_Name]));
if PEvt=nil then
begin
Msg:='Unknown Host Name!';
end
else
begin
Msg:=Format('<h3>Computer name is "%s" .</h3><br>',[pEvt^.h_Name]);
Msg:=Msg+Format('<h3>IP address is %s</h3><br>',[pIPAddress]);
With self.IPCheck do
begin
Host:=IPAddr;
Try
Ping;
With ReplyStatus do
begin
Msg:=Msg+Format('%d bytes from %s: icmp_seq=%d ttl=%d time=<%d ms',[BytesReceived,FromIpAddress,SequenceId,TimeToLive,MsRoundTripTime]);
end;
except
Msg:=Msg+' Ping Error!';
end;
end;
end;
end;
Result:=Msg;
end;
 
调用 ping bluestar.vicp.net>c:/1.txt
然后读1.txt取出ip地址即可。
 
哇,andy263的法子好,不过supermay也不错,我会研究一下,这就发分
 
多人接受答案了。
 
后退
顶部