【发布时间】:2012-12-30 20:30:49
【问题描述】:
我正在从 ASP.NET 获取客户端 IP 地址。但是某些客户端 IP 地址收到 127.0.0.1。 有什么问题。如何获取有效的客户端 IP 地址?
我正在使用此代码:
public static string GetIP()
{
string clientIp = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(clientIp))
{
string[] forwardedIps = clientIp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
clientIp = forwardedIps[forwardedIps.Length - 1];
}
if (string.IsNullOrEmpty(clientIp))
clientIp = HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];
if (string.IsNullOrEmpty(clientIp))
clientIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
return clientIp.ToString();
}
【问题讨论】:
-
127.0.0.1 是本地主机地址,我想您是从托管它的同一台计算机连接到该页面?
-
只是猜测?但可能是代理问题。看看stackoverflow.com/questions/7445592/…
-
sircapsolat,我想是的。但我找不到解决方法。