介绍
这篇文章主要介绍php如何判断IP地址是否在多个IP段内,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
php判断IP地址是否在多个IP段内的具体代码如下
IP.class。php
& lt; php ? , class Ip  { ,/* * ,,*,取IP ,,*,@return 字符串 ,,*/public 才能;static  function 得到(),{ ,,,if ($ _SERVER [& # 39; HTTP_CLIENT_IP& # 39;),,,, $ _SERVER [& # 39; HTTP_CLIENT_IP& # 39;] !=& # 39;未知# 39;),{ ,,,,,,,ip 美元;=,$ _SERVER [& # 39; HTTP_CLIENT_IP& # 39;]; ,,,,,},elseif ($ _SERVER [& # 39; HTTP_X_FORWARDED_FOR& # 39;),,,, $ _SERVER [& # 39; HTTP_X_FORWARDED_FOR& # 39;] !=& # 39;未知# 39;),{ ,,,,,,,ip 美元;=,$ _SERVER [& # 39; HTTP_X_FORWARDED_FOR& # 39;]; ,,,,,},{else ,,,,,,,ip 美元;=,$ _SERVER [& # 39; REMOTE_ADDR& # 39;]; ,,,,,} ,,,,,return $ ip; ,,} , ,/* * ,,*,IP转成整形数的值 ,,*,@param string ip 美元;IP ,,*,@return int ,,*/public 才能static function  ipToInt (ip), { ,,,ips 美元;=,爆炸(& # 39;强生# 39;美元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 例外(& # 39;ip  is 错误# 39;); ,,,,,的工具::警报(& # 39;IP地址存在错误……& # 39;);,//一个工具类,弹出提示信息 ,,,} ,,,return int美元; ,,} , ,/* * ,,*,判断IP是否在一个IP段内 ,,*,@param string startIp 美元;开始IP ,,*,@param string endIp 美元;结束IP ,,*,@param string ip 美元;IP ,,*,@return 保龄球 ,,*/public 才能static function  isIn (startIp美元,endIp美元,美元ip), { ,,,start 美元;=,Ip: ipToInt ($ startIp); ,,,最终获得美元=,Ip: ipToInt ($ endIp); ,,,ipInt 美元;=,Ip: ipToInt ($ Ip); ,,,result 美元;=,假; ,,,if (ipInt>美元;=$ start ,,, ipInt<美元;=$结束),{ ,,,,,result 美元;=,真的; ,,,} ,,,return 结果美元; ,,} , } , ?在
IpRang.class。php
& lt; php ? ,//将不同的IP段存储到数组中. . , $ iprang=阵列( 数组才能(& # 39;222.243.159.1& # 39;,& # 39;222.243.159.255& # 39;), 数组才能(& # 39;10.1.1.1& # 39;,& # 39;10.1.1.255& # 39;) ); 祝辞;
测试。php
& lt; php ? , require_once & # 39; Tool.class.php& # 39;,,//工具类 require_once & # 39; IP.class.php& # 39;;//IP类 require_once & # 39; IpRang.class.php& # 39;;,//IP段范围 , $ ip =, IP:获得();,//获取IP地址 $ tag=& # 39; 1 & # 39;; foreach ($ iprang as  key 美元;=祝辞,美元值){ ,如果(! IP::型号(价值[0],美元,美元价值[1],美元IP)) { 继续才能; ,其他}{ 美元才能标记。=美元关键; ,} } 如果(mb_strlen(标签,美元& # 39;utf - 8 # 39;)==1) { ,echo “& lt; script  src=https://www.yisu.com/zixun/'/iplookup/iplookup.php ?格式=js&ip=" $ ip。“‘类型=' text/javascript '> 脚本>”;//调用新浪IP接口 回声”