0

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

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

       packet.Ethernet.IpV4.Source.ToString()

我尝试浏览对象浏览器,但没有找到似乎匹配的属性。有什么办法可以找到吗?

4

1 回答 1

1

这更多的是网络问题,而不是编程问题。一个简短的答案是 - 你不能。

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

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

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

于 2014-07-29T14:10:41.423 回答