Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用delphi跟踪IP_Delphi_Indy_Delphi Xe_Traceroute - Fatal编程技术网

如何使用delphi跟踪IP

如何使用delphi跟踪IP,delphi,indy,delphi-xe,traceroute,Delphi,Indy,Delphi Xe,Traceroute,我需要跟踪ip的路由,实际上我正在使用idTraceRoute单元中的TIdTraceRouteindy组件 IdTraceRoute1:= TIdTraceRoute.Create(Self); IdTraceRoute1.ResolveHostNames:= True; IdTraceRoute1.ReceiveTimeout:= 5000; IdTraceRoute1.OnReply:= TraceRoute; IdTraceRoute1.Host:= '

我需要跟踪ip的路由,实际上我正在使用
idTraceRoute
单元中的
TIdTraceRoute
indy组件

   IdTraceRoute1:= TIdTraceRoute.Create(Self);
   IdTraceRoute1.ResolveHostNames:= True;
   IdTraceRoute1.ReceiveTimeout:= 5000;
   IdTraceRoute1.OnReply:= TraceRoute;

    IdTraceRoute1.Host:= 'www.google.com';
    IdTraceRoute1.Trace;


procedure TForm1.TraceRoute(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
   Memo1.Lines.Add(AReplyStatus.FromIpAddress);
end;
但总是回来

0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
是否存在另一种跟踪ip的方法,可能使用windows api或其他indy组件


实际上,我使用的是delphi xe和Windows 7。

跟踪基本上是基于发送从TTL为1开始的ICMP数据包,并增加它直到到达目的地。因为每个路由器都会减少TTL,当它达到0时,一个错误会返回给调用者,所以可以使用它来跟踪“路由”数据包的使用。请注意,要使ICMP协议正常工作,防火墙不得阻止ICMP协议。ICMP是一种在IP上运行的协议,就像TCP一样。它不使用TCP。您可以仅使用ICMP编写跟踪路由实用程序。但是Windows tracert实用程序在您的系统上工作吗?

我刚刚在我的博客上写了一篇文章,它可以帮助您


您使用的是哪个版本的Indy?当前版本是10.5.8。

添加标签
indy
,问题就在这里是的,有一个API可以避免indy,请参阅此处: