Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php中判断某个IP地址是否存在范围内

php中判断某个IP地址是否存在范围内

不言
不言asal
2018-04-13 10:07:543186semak imbas

本篇文章给大家分享的内容是关于php中判断某个IP地址是否存在范围内的方法,有需要的朋友可以参考一下

看到网上很多各式可以ip地址的范围的方法,有用正则的,还有字符串截取的。自己试了很多感觉不怎么靠谱,一是有些不舍很准确,二是太伤性能了,又复杂。然后搜了很多资料,才找到个性能比较好的简单的IP地址范围判断的方法,在这里作个笔记记录一下。

IP地址库的话,纯真的不错:http://www.cz88.net/

也可以使用网上接口来使用,但是有问题。你不能频繁的去用for循环来去访问,不然会被接口屏蔽掉

淘宝IP地址库:http://ip.taobao.com/service/getIpInfo.php?ip=这里填IP地址  


好了,其实真正实现判断IP地址范围很简单的,一行代码就搞定了,看如下我写的案例你就懂了:





[php] view plain copy

//案例:判断192.168.1.127是否在 (192.168.1.1--192.168.1.255)的范围里面  
  
$ip_start = get_iplong('192.168.1.1'); //起始ip  
$ip_end = get_iplong('192.168.1.255');//至ip  
$ip = get_iplong('192.168.1.127');//判断的ip  
//可以这样简单判断  
if($ip>=$ip_start && $ip <=$ip_end){  
    echo &#39;IP在此范围内&#39;;  
}else{  
    echo &#39;IP不在此范围&#39;;  
}  
/** 
 * 将ip地址转换成int型 
 * @param $ip  ip地址 
 * @return number 返回数值 
 */  
function get_iplong($ip){  
    //bindec(decbin(ip2long(&#39;这里填ip地址&#39;)));  
    //ip2long();的意思是将IP地址转换成整型 ,  
    //之所以要decbin和bindec一下是为了防止IP数值过大int型存储不了出现负数。  
    return bindec(decbin(ip2long($ip)));  
}


Atas ialah kandungan terperinci php中判断某个IP地址是否存在范围内. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:关于php的基础学习Artikel seterusnya:PHP 的 chunk_split() 函数