温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php如何判断IP地址是否在多个IP段内

发布时间:2021-02-08 11:27:17 来源:亿速云 阅读:145 作者:小新 栏目:开发技术

这篇文章主要介绍php如何判断IP地址是否在多个IP段内,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

php判断IP地址是否在多个IP段内的具体代码如下

IP.class.php

<?php   class Ip {   /**    * 取IP    * @return string    */   public static 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;   }     /**    * IP转成整形数值    * @param string $ip IP    * @return int    */   public static 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');       Tool::Alert('IP地址存在错误...'); //一个工具类,弹出提示信息     }     return $int;   }     /**    * 判断IP是否在一个IP段内    * @param string $startIp 开始IP    * @param string $endIp 结束IP    * @param string $ip IP    * @return bool    */   public static function isIn($startIp, $endIp, $ip) {     $start = Ip::ipToInt($startIp);     $end = Ip::ipToInt($endIp);     $ipInt = Ip::ipToInt($ip);     $result = false;     if ($ipInt>=$start && $ipInt<=$end) {       $result = true;     }     return $result;   }   }   ?>

IpRang.class.php

<?php   //将不同的IP段存储到数组中..   $iprang=array(   array('222.243.159.1','222.243.159.255'),   array('10.1.1.1','10.1.1.255') ); ?>

test.php

<?php   require_once 'Tool.class.php'; //工具类 require_once 'IP.class.php'; //IP类 require_once 'IpRang.class.php'; //IP段范围   $ip = IP::get(); //获取IP地址 $tag='1'; foreach($iprang as $key => $value){  if(!IP::isIn($value[0], $value[1], $ip)){   continue;  }else{   $tag.=$key;  } } if(mb_strlen($tag,'utf-8')==1){  echo "<script src='/iplookup/iplookup.php?format=js&ip=".$ip."' type='text/javascript'></script>";//调用新浪IP接口  echo "<script type='text/javascript'>alert('很遗憾,您所用的设备网络不在某某范围内...\\n".$ip."\\n'+remote_ip_info.province+remote_ip_info.city+remote_ip_info.district); $(\"input[name='submit']\").attr(\"disabled\",true);</script>";   //弹出提示框,显示IP地址、地址以及将提交按钮置为不可用状态 }   ?>

以上是“php如何判断IP地址是否在多个IP段内”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI