asp.net网站发布到服务器之后,获取的客户端IP都是127.0.0.1,为什么?
如题,尝试过在其它的机器上搭建iis服务器,经测试获取客户端IP没有问题,但发布到客户的服务器上之后就不成了,客户服务器的环境是WinServer2003+iis6.0,...
如题,尝试过在其它的机器上搭建iis服务器,经测试获取客户端IP没有问题,但发布到客户的服务器上之后就不成了,客户服务器的环境是Win Server 2003 + iis 6.0,获取客户端IP的代码是HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
客户的服务器需要特别的配置一下吗?到底是什么原因呢?希望大家能给予指点,多谢多谢!! 展开
客户的服务器需要特别的配置一下吗?到底是什么原因呢?希望大家能给予指点,多谢多谢!! 展开
1个回答
展开全部
public string IPAddress()
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
if (!string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(result))
{
//可能有代理
if (result.IndexOf(".") == -1) //没有"."肯定是非IPv4格式
result = null;
else
{
if (result.IndexOf(",") >= 0)
{
//有",",估计多个代理。取第一个不是内网的IP。
result = result.Replace(" ", "").Replace("'", "").Replace(";", "");
string[] temparyip = result.Split(',');
for (int i = 0; i < temparyip.Length; i++)
{
if (IsIPAddress(temparyip[i]))
{
if (!temparyip[i].StartsWith("10.") && !temparyip[i].StartsWith("192.168") && !temparyip[i].StartsWith("172.16."))
{
result = temparyip[i]; //找到不是内网的地址
break;
}
}
}
}
if (!IsIPAddress(result)) //代理即是IP格式
{
result = null; //代理中的内容 非IP,取IP k
}
}
}
}
else
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (string.IsNullOrEmpty(result))
{
result = "000.000.000.000";
}
return result;
}
追问
非常感谢你的回答,再听听别人还有没有其它建议。
Storm代理
2023-05-30 广告
2023-05-30 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询