本地主机上的哪个网络接口连接到主机B.

时间:2011-02-28 09:23:35

标签: c# network-programming

假设我的计算机A连接到多个网络。其中一个网络是另一个主机,B。

是否可以通过主机A的C#确定主机B如何到达主机A?该解决方案必须同时处理IPv4和IPv6。它不需要处理NAT。

可以说我想弄清楚主机A的哪个网络接口连接到主机B.

3 个答案:

答案 0 :(得分:1)

永远不可能告诉其他主机将如何联系到您,因为它取决于该主机的路由表。

但是,通常路由是对称的,这意味着远程主机将以与到达该远程主机相同的方式与您联系。您可以检查路由表。在Windows上,该命令将是“route -n”。这可能也是通过某些API公开的。

如果主机A和B已连接,则该连接将显示在netstat中。

如果你控制具有连接套接字的代码,那么你只需要获得对等体。抱歉,我没有C#代码。

答案 1 :(得分:1)

答案 2 :(得分:1)

你的捕获是How to detemine which network interface (ip address) will be used to send a packet to a specific ip address?

你可以找到GetBestAddress的pinvoke。我无法找到支持IPv6的GetBestAddressEx的一些pinvoke示例