当前位置:首页 > PHP教程 > php函数 > 列表

php判断用户ip是否在同一网段或同一局域网实例

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-18 09:59:57 浏览: 评论:0 

原理根据用户给出的ip,再获取当前IP然后转换成数字型的,根据IP,a,b,c类进行计算,根据进行对比就OK,代码如下:

  1. $start =ipToInt('192.168.1.110'); 
  2.  $end = ipToInt('192.168.0.1'); 
  3.  $ipInt = ipToInt( get() ); 
  4.  $result = false; 
  5.  if ($ipInt>=$start && $ipInt<=$end) { 
  6.    $result = true; 
  7.  } 
  8.  
  9.  if$result ) 
  10.  { 
  11.   echo '在同一网段'
  12.  } 
  13.  else 
  14.  {//开源代码phpfensi.com 
  15.   echo '不在同一网段'
  16.  }  
  17.  
  18.  
  19.  //不在同一网段 
  20.  
  21.  /* 
  22.   * IP转成整形数值 
  23.   * @param string $ip IP 
  24.   * @return int 
  25.   */ 
  26.  
  27.  function ipToInt($ip) { 
  28.   $ips教程 = explode('.',$ip); 
  29.   if (count($ips)>=4) { 
  30.    $int = $ips[0]*256*256*256+$ips[1]*256*256+$ips[2]*256+$ips[3];//根据IP,a,b,c类进行计算 
  31.   } else { 
  32.    throw new Exception('ip is error'); 
  33.   } 
  34.   return $int
  35.  }  
  36.  
  37.  
  38.  /* 
  39.  * 获取用户IP地址 192.68.0.110 
  40.  */ 
  41.  
  42.  function get() { 
  43.   if ($_SERVER['HTTP_CLIENT_IP'] && $_SERVER['HTTP_CLIENT_IP']!='unknown') { 
  44.    $ip = $_SERVER['HTTP_CLIENT_IP']; 
  45.   } elseif ($_SERVER['HTTP_X_FORWARDED_FOR'] && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') { 
  46.    $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
  47.   } else { 
  48.    $ip = $_SERVER['REMOTE_ADDR']; 
  49.   } 
  50.   return $ip
  51.  } 

Tags: php用户ip 同一网段 同一局域网

分享到: