如何从pcap.net数据包中获取网关/路由器地址?

时间:2014-07-29 13:48:07

标签: vb.net networking pcap.net

这可能有一个非常明显的答案,但是获取我刚收到的pcap.net数据包的路由器/网关IP地址的常用方法是什么?

我知道如何获取IP地址源:

       packet.Ethernet.IpV4.Source.ToString()

我尝试浏览对象浏览器,但我找不到似乎匹配的属性。我能以任何方式找到它吗?

1 个答案:

答案 0 :(得分:1)

它更多的是网络问题,而不是编程问题。简短的回答是 - 你不能。

源IP地址将始终(除非网关奇怪地翻译)属于您想要连接的端点。这样您的应用程序将获得您发送的任何请求的响应。除非您使用NAT,否则路由器不会以任何方式更改数据包,因此从连接的角度来看它是透明的。您刚刚获得的数据包的源地址几乎总是包含您连接的服务器的IP地址。这就是以太网的工作方式。

穷人的解决方案是使用traceroute找出数据包的走向,从而获得路由器的地址,这通常是沿途的第一跳。从程序员的角度来看,这意味着向目的地发送几个数据包你从中获取数据包,每次递增数据包的TTL(从1开始)并查看ICMP响应。但是,如果正在进行某种负载平衡,这可能会误导您。

也许如果你澄清了你想要实现的目标,我可以指出你更好的方向。