2011-02-28 151 views
0

假設我的計算機A連接到多個網絡。在這些網絡之一上是另一個主機B。本地主機上的哪個網絡接口連接到主機B

是否有可能通過主機A的C#確定主機B如何到達主機A?該解決方案必須同時處理IPv4和IPv6。它不需要處理NAT。

有人可能會說,我想弄清楚其中的主機A的網絡接口,一個連接到主機B

回答

1

這是永遠不可能告訴另一臺主機將您的聯絡方式,因爲它是由該主機的路由表。

但是,通常路由是對稱的,這意味着遠程主機將以到達該遠程主機的相同方式到達您。您可以檢查路由表。在Windows上,該命令將是「route -n」。這可能通過某些API暴露。

如果主機A和B已連接,則該連接將顯示在netstat中。

如果你控制具有連接套接字的代碼,那麼你只需要獲得對等體。對不起,我沒有C#代碼來做到這一點。