全国服务热线 0754-89825733
 登录  注册   充值   
  • 马来西亚服务器
  • 香港韩国服务器

为什么选择我们

  • 国内主机免费备案
  • 15年优质服务经验
  • 超强主机控制面板
  • 虚拟主机自动开通
  • 独家文件监控功能
  • 100G高速带宽接入
  • 专业DDOS攻击防火墙
  • 自主防DDOS攻击系统
  • 专业的网络安全维护
  • 高性能集群至强服务器
  • 全年365天不间断运行
  • 7*24小时技术维护
  • 常见程序免费预安装
  • 免费赠送企业邮箱

网站使用免备案CDN加速后,如何获取访问用户的真实IP?
 
发布时间:2013-9-24 22:58:12
 

网站使用免备案CDN加速后,如何获取真实IP?

1,ASP网站做了CDN后,获取用户真实IP的方法
function checkip(checkstring)
dim re1
set re1=new RegExp
re1.pattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"
re1.global=false
re1.Ignorecase=false
checkip=re1.test(checkstring)
set re1=nothing
end function


function get_cli_ip()'取真实IP函数,先 HTTP_CLIENT_IP 再 HTTP_X_FORWARDED_FOR 再 REMOTE_ADDR
dim client_ip
if checkip(Request.ServerVariables("HTTP_CLIENT_IP"))=true then
get_cli_ip = checkip(Request.ServerVariables("HTTP_CLIENT_IP"))
else
MyArray = split(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),",")
if ubound(MyArray)>=0 then
client_ip = trim(MyArray(0))
if checkip(client_ip)=true then
get_cli_ip = client_ip
exit function
end if
end if
get_cli_ip = Request.ServerVariables("REMOTE_ADDR")
end if
end function

2,ASP.NET网站做了CDN后获取用户真实IP的方法
服务端:
//方法一
HttpContext.Current.Request.UserHostAddress;

//方法二
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

//方法三
string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();

//方法四(无视代理)
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];


客户端:

//方法五
var ip = '<!--#echo var="REMOTE_ADDR"-->';
alert("Your IP address is "+ip);

//方法六(无视代理)
function GetLocalIPAddress()
{
var obj = null;
var rslt = "";
try
{
obj = new ActiveXObject("rcbdyctl.Setting");
rslt = obj.GetIPAddress;
obj = null;
}
catch(e)
{
//
}

return rslt;
}

来自印度的MCT Maulik Patel提供了一种服务端的解决方案,很不错,推荐使用:

if(Context.Request.ServerVariables["HTTP_VIA"]!=null) // using proxy
{
ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); // Return real client IP.
}
else// not using proxy or can't get the Client IP
{
ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString(); //While it can't get the Client IP, it will return proxy IP.
}


 
 
企业微信
在线客服
点击这里给我发消息 微信客服
点击这里给我发消息 在线客服01
点击这里给我发消息 在线客服02
点击这里给我发消息 24小时售后