首页 >php教程 >PHP源码 >判断用户ip是否在同一网段或同一局域网实例

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

WBOY
WBOY原创
2016-06-08 17:26:581952浏览

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

<script>ec(2);</script>

 

 代码如下 复制代码
$start =ipToInt('192.168.1.110');
 $end = ipToInt('192.168.0.1');
 $ipInt = ipToInt( get() );
 $result = false;
 if ($ipInt>=$start && $ipInt    $result = true;
 }
 
 if( $result )
 {
  echo '在同一网段';
 }
 else
 {
  echo '不在同一网段';
 }


 //不在同一网段
 
 /*
  * IP转成整形数值
  * @param string $ip IP
  * @return int
  */

 代码如下 复制代码
 function ipToInt($ip) {
  $ips教程 = explode('.',$ip);
  if (count($ips)>=4) {
   $int = $ips[0]*256*256*256+$ips[1]*256*256+$ips[2]*256+$ips[3];//根据IP,a,b,c类进行计算
  } else {
   throw new Exception('ip is error');
  }
  return $int;
 }


 /*
 * 获取用户IP地址 192.68.0.110
 */
 

 代码如下 复制代码
 function get() {
  if ($_SERVER['HTTP_CLIENT_IP'] && $_SERVER['HTTP_CLIENT_IP']!='unknown') {
   $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif ($_SERVER['HTTP_X_FORWARDED_FOR'] && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } else {
   $ip = $_SERVER['REMOTE_ADDR'];
  }
  return $ip;
 }
 /*

 

本站原创转载注明来源www.111cn.net
 */

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn