网站使用CDN后,获取真实IP的办法 
	 文章来源:来之星星  发布者:Jonny 发布时间:2014/10/19 21:59:32【打印此页 】  【关闭 】 
	 
Supesite使用CDN后获取真实IP 办法 include/main.inc.php文件,这部分 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 替换成 function get_real_ip() Discuz!使用CDN后获取真实IP办法 nclude/common.inc.php if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 替换为: function get_real_ip() 帝国cms后台记录的ip日志和用户注册记录的ip \e\class\connect.php搜索function egetip()函数中的获取ip代码修改成以上部分 DZ注册用户IP和邀请码拥有者IP相同的解决办法 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { 替换成: -------------------- 做了CDN的ASP网站如何取到用户真实IP程序 function   checkip(checkstring)'用正则判断IP是否合法 function   get_cli_ip()'取真实IP函数,先 HTTP_CLIENT_IP 再 HTTP_X_FORWARDED_FOR 再 REMOTE_ADDR 服务端: //方法一 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 =''; alert("Your IP address is "+ip); //方法六(无视代理) function  GetLocalIPAddress() {  var  obj = null ;  var  rslt ="";  try {  new  ActiveXObject("rcbdyctl.Setting");  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 {  "REMOTE_ADDR" ].ToString();  //While it can't get the Client IP, it will return proxy IP. } 备注: 1. 有些代理是不会发给我们真实IP地址的 2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP  
 
  
	
	
		
		
			CopyRight © 2009-2018 Qianxinet.com 版权所有  
			增值电信业务经营许可证:陕B1.B2-20100043 陕西省互联网协会理事单位 
			地址:陕西省西安市高新区锦业一路58号嘉昱大厦C座三层  
			客服热线:029-68553302 技术值班电话:13072970061