如何用PHP判断IP地址在不在多个IP段里
导读:这篇文章主要为大家详细介绍了如何用PHP判断IP地址在不在多个IP段里,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望对大家学习或工作能有帮助。 IP.class.p...
这篇文章主要为大家详细介绍了如何用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段里”已经有了进一步的了解,更多相关的问题,欢迎关注网络或到官网咨询客服。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用PHP判断IP地址在不在多个IP段里
本文地址: https://pptw.com/jishu/650737.html