我正在从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();
}发布于 2013-01-16 21:50:18
127.0.0.1是本地主机,即发出请求的机器与托管请求的机器相同。
我的猜测是,您看到的实际上是您自己的测试或调试?
我认为Request.IsLocal()是一个找到答案的好方法。
https://stackoverflow.com/questions/14359812
复制相似问题