我正在开发一个需要查找用户远程IP地址的ASP.NET项目。我四处寻找,我发现了这个:
Request.ServerVariables["REMOTE_ADDR"]
问题是它只返回“:: 1”而不是IP地址。可能因为我使用本地服务器而出现问题吗?
答案 0 :(得分:1)
是的,这是因为您使用的是本地服务器。
地址"::1"
是localhost
的IPv6地址。
答案 1 :(得分:1)
没有获取用户IP地址的防弹方式,因为可能会有很多代理服务器。您收到的结果对于localhost是正确的,但如果客户端来自外部,REMOTE_ADDR
将返回列表中的最后一个代理。有一个HTTP标头列表可能包含实际的IP地址,但也可以伪造。您可以阅读以下博客文章了解更多详情(您还可以阅读评论):
答案 2 :(得分:0)
试试这个:
using System.Net;
string host = Dns.GetHostName();
IPHostEntry ip = Dns.GetHostEntry(host);
Console.WriteLine(ip.AddressList[1].ToString());