首頁  >  文章  >  後端開發  >  php中判斷某個IP位址是否存在範圍內

php中判斷某個IP位址是否存在範圍內

不言
不言原創
2018-04-13 10:07:543233瀏覽

這篇文章給大家分享的內容是關於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)));  
}


#

以上是php中判斷某個IP位址是否存在範圍內的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn