這篇文章主要介紹了使用php怎么將IP轉(zhuǎn)換為整形,創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,小編覺得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,小編來看看吧!
成都服務(wù)器托管,創(chuàng)新互聯(lián)公司提供包括服務(wù)器租用、四川電信科技城機(jī)房、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、域名注冊(cè)等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:13518219792php是一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。
代碼如下:
echo ip2long("10.2.1.3");
?>
我們將得到
167903491
這是如何計(jì)算的,目前我知道有兩個(gè)算法。其一
復(fù)制代碼 代碼如下:
function ip2int($ip){
//我們先把ip分為四段,$ip1,$ip2,$ip3,$ip4
list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
//然后第一段乘以256的三次方,第二段乘以256的平方,第三段乘以256
//這即是我們得到的值
return$ip1*pow(256,3)+$ip2*pow(256,2)+$ip3*256+$ip4;
}
?>
其二,用位運(yùn)算
復(fù)制代碼 代碼如下:
function ip2int($ip){
list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
return($ip1<<24)|($ip2<<16)|($ip3<<8)|($ip4);
}
?>
我們會(huì)發(fā)現(xiàn),有些ip轉(zhuǎn)化成整數(shù)后,是負(fù)的,這是因?yàn)榈玫降慕Y(jié)果是有符號(hào)整型,較大值是2147483647.要把它轉(zhuǎn)化為無符號(hào)的,可以用
sprintf("%u",ip2long($ip);
就能轉(zhuǎn)換為正整數(shù)。而且得到的結(jié)果用long2ip也可以正常轉(zhuǎn)換回原來的ip地址。也可以用ip2long來驗(yàn)證一個(gè)ip是否是有效的,如
復(fù)制代碼 代碼如下:
function chk_ip($ip){
if(ip2long($ip)=="-1") {
return false;
}
returntrue;
}
//應(yīng)用
var_export(chk_ip("10.111.149.42"));
var_export(chk_ip("10.111.256.42"));
?>
以上就是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,小編為大家收集整理的使用php怎么將IP轉(zhuǎn)換為整形,如何覺得創(chuàng)新互聯(lián)建站的內(nèi)容還不錯(cuò),歡迎將創(chuàng)新互聯(lián)建站推薦給身邊好友。