假设我的计算机A连接到多个网络。其中一个网络是另一个主机,B。
是否可以通过主机A的C#确定主机B如何到达主机A?该解决方案必须同时处理IPv4和IPv6。它不需要处理NAT。
可以说我想弄清楚主机A的哪个网络接口连接到主机B.
答案 0 :(得分:1)
永远不可能告诉其他主机将如何联系到您,因为它取决于该主机的路由表。
但是,通常路由是对称的,这意味着远程主机将以与到达该远程主机相同的方式与您联系。您可以检查路由表。在Windows上,该命令将是“route -n”。这可能也是通过某些API公开的。
如果主机A和B已连接,则该连接将显示在netstat中。
如果你控制具有连接套接字的代码,那么你只需要获得对等体。抱歉,我没有C#代码。
答案 1 :(得分:1)
您也可以尝试查看http://msdn.microsoft.com/en-us/library/system.net.networkinformation.tcpconnectioninformation.aspx。
答案 2 :(得分:1)
你可以找到GetBestAddress的pinvoke。我无法找到支持IPv6的GetBestAddressEx的一些pinvoke示例