我已设法使用以下代码从我的服务器获取客户端的IP地址
OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string ipaddress = endpoint.Address;
但是,如果客户端位于同一网络中,则所有IP地址都是网络的公共IP地址。
如果每个客户端位于同一个AP下,是否有办法获取本地IP地址? 或者只是简单地说,是否有更简单的方法来区分客户?
答案 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/