0

我正在开发一个需要查找用户远程 IP 地址的 ASP.NET 项目。我四处寻找,我发现了这个:

Request.ServerVariables["REMOTE_ADDR"]

问题是它只返回 "::1" 而不是 IP 地址。可能是因为我使用本地服务器而出现问题吗?

4

3 回答 3

1

是的,这是因为您使用的是本地服务器。

该地址"::1"是 的 IPv6 地址localhost

于 2013-02-01T09:57:01.733 回答
1

获取用户 IP 地址没有万无一失的方法,因为沿途可能有很多代理服务器。您收到的结果对于 localhost 是正确的,但REMOTE_ADDR如果客户端来自外部,则会返回列表中的最后一个代理。有一个 HTTP 标头列表,其中可能包含实际的 IP 地址,但也可以伪造。您可以阅读以下博客文章了解更多详细信息(您还应该阅读评论):

于 2013-02-01T10:03:44.257 回答
0

尝试这个:

using System.Net;
string host = Dns.GetHostName();
IPHostEntry ip = Dns.GetHostEntry(host);
Console.WriteLine(ip.AddressList[1].ToString());
于 2013-02-01T10:01:03.200 回答