2012-03-30 75 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

相关问题