【发布时间】:2014-08-28 23:17:20
【问题描述】:
我在 LAN 服务器上运行 wcf 服务,使用 tcp/ip 模式。 现在,当客户端发送请求连接 wcf 服务时,我需要获取每个客户端信息。 因为一切都在局域网上。我只需要获取客户端 MAC、IP、PC 名称。 有没有办法得到这些信息?谢谢。
【问题讨论】:
-
请参阅duplicate 以查找 IP。从 IP 获取 MAC 和主机名是两个独立的问题,搜索即可找到。
我在 LAN 服务器上运行 wcf 服务,使用 tcp/ip 模式。 现在,当客户端发送请求连接 wcf 服务时,我需要获取每个客户端信息。 因为一切都在局域网上。我只需要获取客户端 MAC、IP、PC 名称。 有没有办法得到这些信息?谢谢。
【问题讨论】:
你可以试试这样的:
var properties = OperationContext.Current.IncomingMessageProperties;
var endpointProperty = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
if (endpointProperty != null)
{
var ip = endpointProperty.Address;
}
更多关于OperationContext类的信息,请查看here。
【讨论】:
http://msdn.microsoft.com/en-us/library/system.environment.machinename(v=vs.110).aspx 为计算机名称
Get public/external IP address? 用于 IP 地址
Reliable method to get machine's MAC address in C# 用于 MAC
请在发布问题之前考虑 google,我在 2 分钟内找到了这些答案。
【讨论】: