香港虚拟主机
本站公告
新闻资讯
虚拟主机帮助
域名帮助
服务器帮助
邮箱帮助
建站帮助
网站推广帮助
VPS帮助
特色主机帮助
网站备案专题
会员帮助信息
代理帮助信息
成功案例
我司获香港虚拟主机排行榜十…
香港虚拟主机金秋促销活动正…
百度整治给SEO带来了新的希望
百度同时收录网站带WWW和不带…
百度对原创内容的判断标准 如…
如何建设网站 网站建设三步曲
如何挑选老域名 老域名有那些…
域名常见故障与分析
虚拟主机基本参数介绍
交换链接的技巧 谈一下选择交…
您现在的位置: 江南数联 >> 帮助中心 >> CDN加速技术 >> 正文

使用CDN后,获取真实IP 办法

  作者:admin    来源:本站原创    点击次数:29     更新时间:2014-9-17 7:47:23  
     
 
关注石头有礼
 
 

使用CDN后,获取真实IP 办法

Supesite使用CDN后获取真实IP 办法

include/main.inc.php文件,这部分

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
 $_SGLOBAL['onlineip'] = getenv('HTTP_CLIENT_IP');
 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
 $_SGLOBAL['onlineip'] = getenv('HTTP_X_FORWARDED_FOR');
 } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
 $_SGLOBAL['onlineip'] = getenv('REMOTE_ADDR');
 } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
 $_SGLOBAL['onlineip'] = $_SERVER['REMOTE_ADDR'];
 }

替换成

function get_real_ip()
 {
 $ip=false;
 if(!empty($_SERVER["HTTP_CLIENT_IP"]))
 {
 $ip = $_SERVER["HTTP_CLIENT_IP"];
 }
 if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
 {
 $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
 if ($ip)
 {
 array_unshift($ips, $ip); $ip = FALSE;
 }
 for ($i = 0; $i < count($ips); $i++)
 {
 if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i]))
 {
 $ip = $ips[$i];
 break;
 }
 }
 }
 return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }
 $_SGLOBAL['onlineip'] = get_real_ip();

Discuz!使用CDN后获取真实IP办法

nclude/common.inc.php
找到如下代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
 $onlineip = getenv('HTTP_CLIENT_IP');
 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
 $onlineip = getenv('HTTP_X_FORWARDED_FOR');
 } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
 $onlineip = getenv('REMOTE_ADDR');
 } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
 $onlineip = $_SERVER['REMOTE_ADDR'];
 }
 

替换为:
 

function get_real_ip()
 {
 $ip=false;
 if(!empty($_SERVER["HTTP_CLIENT_IP"]))
 {
 $ip = $_SERVER["HTTP_CLIENT_IP"];
 }
 if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
 {
 $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
 if ($ip)
 {
 array_unshift($ips, $ip); $ip = FALSE;
 }
 for ($i = 0; $i < count($ips); $i++)
 {
 if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i]))
 {
 $ip = $ips[$i];
 break;
 }
 }
 }
 return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }
 $onlineip = get_real_ip();
 

帝国cms后台记录的ip日志和用户注册记录的ip

\e\class\connect.php搜索function egetip()函数中的获取ip代码修改成以上部分

DZ注册用户IP和邀请码拥有者IP相同的解决办法

 方法A:


register.php 200行

showmessage('register_invite_iperror');
改为
//showmessage('register_invite_iperror');

方法B:
 在include/common.inc.php文件中把

 代码:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
 $onlineip = getenv('HTTP_CLIENT_IP');
 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
 $onlineip = getenv('HTTP_X_FORWARDED_FOR');
 } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
 $onlineip = getenv('REMOTE_ADDR');
 } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
 $onlineip = $_SERVER['REMOTE_ADDR'];
 }
 

替换成:

 代码:
 $onlineip=getenv('HTTP_X_FORWARD_FOR');

--------------------

做了CDN的ASP网站如何取到用户真实IP程序


function   checkip(checkstring)'用正则判断IP是否合法
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

 

ASP.NET获取IP的6种方法


服务端:

//方法一
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.
}

备注:

1. 有些代理是不会发给我们真实IP地址的

2. 有些客户端会因为“header_access deny”的安全设置而不发给我们IP

本章关健词:江南数联 域名注册 海外虚拟主机 G享虚拟主机 国内虚拟主机 企业邮箱 网站建设 自助建站 400电话申请 微聚商

 
  版权申请:使用CDN后,获取真实IP 办法出自江南数联dns06.com未经授权请勿转载!  
 
  • 上一篇帮助:

  • 下一篇帮助: 没有了
  •  
         

    扫一扫关注公众号有礼
    Copyright@2004-2015 江南数联 版权所有未经授权请勿复制!
    《中华人民共和国增值电信业务经营许可证》ISP证编号:皖B2-20080036 湘B2-20160056
    公司全称:永州石头网络技术有限公司(运营部)
    地址: 中国·湖南省永州市育才路158号 服务热线:400 616 9260
    安徽公司:安徽仁科信息技术有限公司 地址:合肥万和新城广场A-608 
    关注词:网站空间虚拟空间空间域名域名空间域名主机网站空间哪家好网站空间多少钱