假設我的計算機A連接到多個網絡。在這些網絡之一上是另一個主機B。本地主機上的哪個網絡接口連接到主機B
是否有可能通過主機A的C#確定主機B如何到達主機A?該解決方案必須同時處理IPv4和IPv6。它不需要處理NAT。
有人可能會說,我想弄清楚其中的主機A的網絡接口,一個連接到主機B
假設我的計算機A連接到多個網絡。在這些網絡之一上是另一個主機B。本地主機上的哪個網絡接口連接到主機B
是否有可能通過主機A的C#確定主機B如何到達主機A?該解決方案必須同時處理IPv4和IPv6。它不需要處理NAT。
有人可能會說,我想弄清楚其中的主機A的網絡接口,一個連接到主機B
這是永遠不可能告訴另一臺主機將您的聯絡方式,因爲它是由該主機的路由表。
但是,通常路由是對稱的,這意味着遠程主機將以到達該遠程主機的相同方式到達您。您可以檢查路由表。在Windows上,該命令將是「route -n」。這可能通過某些API暴露。
如果主機A和B已連接,則該連接將顯示在netstat中。
如果你控制具有連接套接字的代碼,那麼你只需要獲得對等體。對不起,我沒有C#代碼來做到這一點。
你可以找到的PInvoke爲GetBestAddress。我無法找到支持IPv6的GetBestAddressEx的一些pinvoke示例