2012-03-30 162 views
1

嗨,查找連接到WCF服務的客戶端的IP /名稱?

我有一個WCF服務在IIS7中承載,使用WAS通過TCP進行通信。在服務端,我實現了IParameterInspector來記錄被調用的服務操作,但我也需要客戶端IP /名稱。

我已經試過這樣:

OperationContext.Current.IncomingMessageProperties[RemoteEndpointMessageProperty.Name].Address 

但是,總是返回 「:: 1」?如果我使用:

Dns.GetHostEntry(messageProperty.Address).HostName.Split('.').LastOrDefault() 

該名稱將永遠是本地的,即使客戶端在不同的計算機上,那麼該服務?

BestRegards

編輯1:IP是不可能拿到如果我沒有看錯那麼接下來的問題是,如果有任何其他方式specifie客戶端,莫比某種GUID的還是隻有會話ID我應該使用?

+0

您似乎已經寫好的代碼通過複雜的方式獲取*本地*地址。 – 2012-03-30 08:50:11

+0

是的,它似乎是這樣的,問題是我如何獲得客戶端IP?可能嗎? – Banshee 2012-03-30 11:28:56

回答

0

您可能會收到一個IPv6地址(如您在這裏)。 ::1是IPv4上的相當於127.0.0.1的IPv6。

此外,並非所有的IP地址有一個與之相關的主機名,有的可能沒有任何時間(例如,如果你得到「本地主機」或其他本地局域網的機器名)

+0

我可能只與客戶端的IP(IPV4)地址一起居住,但是我確定遠程客戶端不在我的本地計算機上,並且我有服務。那麼如何找到IParameterInspector中的客戶端IP /域名? – Banshee 2012-03-30 07:28:12

相關問題