如何获取本地IP地址

时间:2013-12-02 04:13:26

标签: c# wcf

我已设法使用以下代码从我的服务器获取客户端的IP地址

OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string ipaddress = endpoint.Address;

但是,如果客户端位于同一网络中,则所有IP地址都是网络的公共IP地址。

如果每个客户端位于同一个AP下,是否有办法获取本地IP地址? 或者只是简单地说,是否有更简单的方法来区分客户?

3 个答案:

答案 0 :(得分:0)

试试这个

HttpRequest currentRequest = HttpContext.Current.Request;
string ipAddress = currentRequest.ServerVariables["HTTP_X_FORWARDED_FOR"];

if (ipAddress == null || ipAddress.ToLower() == "unknown")
    ipAddress = currentRequest.ServerVariables["REMOTE_ADDR"];

return ipAddress;

答案 1 :(得分:0)

由于网络地址转换,无法始终通过唯一的客户端地址识别客户端,请参阅 How to get a user's client IP address in ASP.NET?

答案 2 :(得分:0)

您可以尝试使用内置功能中的webrtc连接到STUN服务器https://diafygi.github.io/webrtc-ips/