加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

做了CDN获取用户真实IP的函数代码PHP与Asp设置方式

发布时间:2022-07-09 11:14:50 所属栏目:PHP教程 来源:互联网
导读:asp函数代码: 复制代码 代码如下:www.CuoXIn.com 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(
  asp函数代码:
 
  复制代码 代码如下:www.CuoXIn.com
 
  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
 
  discuz论坛取真实IP的php代码,其它类似,请参考稍做修改
 
  (discuz修改include/common.inc.php)
 
  用以下这段代码:
 
  复制代码 代码如下:www.CuoXIn.com
 
  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')) {
 
  $testip = explode('.', getenv('HTTP_X_FORWARDED_FOR'));
 
  if ($testip[0]=='192′ && $testip[1]=='168′) {
 
  $onlineip = getenv('REMOTE_ADDR');
 
  }
 
  elseif($testip[0]=='10′) {
 
  $onlineip = getenv('REMOTE_ADDR');
 
  }
 
  else {
 
  $onlineip = getenv('HTTP_X_FORWARDED_FOR');
 
  }
 
  //gamesir hack end} 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')) {
 
  //by Johnny
 
  $tmp_ip = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
 
  $tmp_ip1 = explode(',',$tmp_ip[0]);
 
  if ($tmp_ip1[0] =='192′ && $tmp_ip1[1] =='168′) {
 
  $onlineip = getenv('REMOTE_ADDR');
 
  }else if($tmp_ip1[0]=='10′) {
 
  $onlineip = getenv('REMOTE_ADDR');
 
  }
 
  else{
 
  $onlineip = $tmp_ip[0];
 
  }
 
  unset($tmp_ip);unset($tmp_ip1);
 
  }
 
  替换这段代码:
 
  复制代码 代码如下:www.CuoXIn.com
 
  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'];
 
  }。
 

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!