我有一個Windows服務(.NET 3.5/C#),它連接到公共互聯網上的外部服務器上的WCF服務。您可以使用WCF連接來獲取您的連接IP地址嗎?
我可以使用該WCF連接來獲取我的計算機的外部IP地址嗎? WCF服務託管在我們的應用程序服務器的IIS內部。我能做些什麼來獲得我的外部IP地址嗎?
我有一個Windows服務(.NET 3.5/C#),它連接到公共互聯網上的外部服務器上的WCF服務。您可以使用WCF連接來獲取您的連接IP地址嗎?
我可以使用該WCF連接來獲取我的計算機的外部IP地址嗎? WCF服務託管在我們的應用程序服務器的IIS內部。我能做些什麼來獲得我的外部IP地址嗎?
如果你在.NET 3.5或4,在你的WCF服務使用此代碼:
using System.ServiceModel;
using System.ServiceModel.Channels;
OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint =
prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string ip = endpoint.Address;
-1:他想要的是_server_ IP地址,而不是客戶端地址。 –
+1:不,他沒有。他希望通過連接到運行WCF服務的另一臺服務器來連接客戶端(Windows服務)IP。 –
我錯過了。他想要他的本地機器的地址,因爲這是Windows服務運行的地方。 –
我是否可以使用WCF連接,讓我的計算機的外部IP 地址?
如果你想從發送請求的服務中獲得你的外部IP比答案是否定的。它與WCF無關。您的電腦甚至可能沒有外部IP,因爲它可能沒有直接連接到互聯網。外部IP可能屬於您的計算機連接到的router。此外部IP將爲您連接到的WCF服務的visible。因此,該服務可能會讓您知道您的請求來自哪個外部IP(如果您將新的'MyIP'字段添加到數據合同中)。
Your machine -> Request -> External WCF Service
Your machine <- Response(your IP is X.X.X.X) <- External WCF Service
或者你也可以從automation.whatismyip.com
更新基於您的評論廢了:
...我希望他們能夠得到自己的IP地址,併發送 到服務器。
他們不知道他們的外部 IP地址,但server will know所以沒有需要發送的IP。
+1爲automation.whatismyip.com作爲檢索它的最簡單的方法,如。string serverIP = new WebClient()。DownloadString(「http:/ /automation.whatismyip.com/n09230945.asp「); – tonycoupland
對不起,誰有未知IP? Windows服務? –
我的winforms開發者說他不知道如何準確地獲得一個面向公衆的IP,所以我試圖幫助他。特別是:運行Windows服務的計算機,它連接到託管ASP.NET和WCF的中央服務器。 – pearcewg
您是否想要從發送請求的Windows服務中獲取外部IP? – Dmitry