您当前的位置: 首页 > 网站编程 > PHP教程 > 各个cms系统设置cdn后获取真实ip地址

各个cms系统设置cdn后获取真实ip地址

作者:不详 来源:网络 发布时间: 2014-08-12 14:02 点击:
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

各个cms系统设置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

  eclassconnect.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
分享到:
本文"各个cms系统设置cdn后获取真实ip地址"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4