跟踪路线结果



我一直在看一篇博客文章中的Traceroute代码。

问题是,当我试图将结果获取到C#窗体时,我唯一得到的是一行上的完整IP;跃点、ms和IP。我试图获得一个列表,或者能够将(字符串(在最多30个跃点上跟踪到172.217.7.174的路由:(跃点、毫秒和IP地址(添加到ListView。

private async void btnAwait_Click(object sender, EventArgs e)
{
var Results = await asyncTraceRoute.TryTraceRouteInternalAsync("google.com", 30);
txtTraceroute.Text = Results.Message;
}

如能提供帮助,我们将不胜感激。

方法的名称(TryTraceRouteInternalAsync(实际上给出了一个提示,表明某些操作的方式不正确。

这个方法只调用一个ping,这就是为什么只得到一个结果。

您需要调用的实际方法是TryTraceRouteAsync,但我强烈感觉您选择了另一个方法,因为它返回一个可访问的对象,带有字符串Message属性。

如果执行以下操作,TryTraceRouteAsync方法将同时异步调用TryTraceRouteInternalAsync(MAX_HOPS=15(次,并将所有结果写入streamWriter。

你可以调用这个方法,得到你想要的所有结果:

private async Task<string> TraceRt()
{
MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream);
await TraceRoute.TryTraceRouteAsync("google.com.tr", streamWriter);
streamWriter.Flush();
memoryStream.Position = 0;
StreamReader stringReader = new StreamReader(memoryStream);
return stringReader.ReadToEnd();
}

最新更新