這篇文章給大家分享的內容是關於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 'IP在此范围内'; }else{ echo 'IP不在此范围'; } /** * 将ip地址转换成int型 * @param $ip ip地址 * @return number 返回数值 */ function get_iplong($ip){ //bindec(decbin(ip2long('这里填ip地址'))); //ip2long();的意思是将IP地址转换成整型 , //之所以要decbin和bindec一下是为了防止IP数值过大int型存储不了出现负数。 return bindec(decbin(ip2long($ip))); }
以上是php中判斷某個IP位址是否存在範圍內的詳細內容。更多資訊請關注PHP中文網其他相關文章!