我們正在開發要安裝在客戶端系統上的Windows服務。此應用程序定期調用我們服務器上的SOAP Web服務。我們希望在客戶端系統的本地IP地址每次訪問我們的服務以進行故障排除時將其包含在SOAP請求中。通過在這裏的其他帖子看,我發現下面的代碼來獲得IP地址的列表的系統接口:被包含在Windows服務獲取用於在Windows服務中進行Web服務調用的接口的本地IP地址
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
此代碼。是否有一種簡單的方法可以確定將此陣列中的哪個IP分配給Web服務呼叫路由到的接口?
不是真的 - 路由發生在請求建立後。最好你可以做的是服務器端捕獲請求來自的IP,但取決於路由/ NAT,你可能看不到發起者的IP。 – Joe
@Joe,謝謝。因此,如果我使用HttpWebRequest對象來訪問服務,那麼沒有辦法獲得發送請求的接口的本地IP地址?本地IP確實是我們想要的。這聽起來像一個可行的替代方案 - 我嘗試使用Socket類連接到端點,然後獲取套接字的LocalEndPoint。通過這樣做我會冒險返回錯誤的IP嗎?我認爲套接字連接和服務請求可能不一定通過相同的接口進行路由。 – Poosh