久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP基于ip2long實(shí)現(xiàn)IP轉(zhuǎn)換整形

瀏覽:79日期:2022-09-08 14:38:03

如何將四個(gè)字段以點(diǎn)分開(kāi)的IP網(wǎng)絡(luò)址協(xié)議地址轉(zhuǎn)換成整數(shù)呢?PHP里有這么一個(gè)函數(shù)ip2long.比如

<?phpecho ip2long('10.2.1.3');?>

我們將得到

167903491

這是如何計(jì)算的,目前我知道有兩個(gè)算法。其一

<?phpfunction 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)算

<?phpfunction 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)化為無(wú)符號(hào)的,可以用sprintf('%u',ip2long($ip);

就能轉(zhuǎn)換為正整數(shù)。而且得到的結(jié)果用long2ip也可以正常轉(zhuǎn)換回原來(lái)的ip地址。也可以用ip2long來(lái)驗(yàn)證一個(gè)ip是否是有效的,如

<?phpfunction chk_ip($ip){ if(ip2long($ip)=='-1') { return false; } return true;}//應(yīng)用var_export(chk_ip('10.111.149.42'));var_export(chk_ip('10.111.256.42'));?>

將輸出true和false

把ip數(shù)據(jù)保存在數(shù)據(jù)庫(kù)(MySQL)中時(shí)候,我們習(xí)慣用ip2long函數(shù)生成整型,然后存放在一個(gè)int(11)類(lèi)型的字段中,但是,在不同的系統(tǒng)平臺(tái)上,ip2long函數(shù)得到的值是不同的,因此可能造成在從數(shù)據(jù)庫(kù)中讀出數(shù)據(jù),用long2ip得到ip的時(shí)候產(chǎn)生錯(cuò)誤,說(shuō)一下我們碰到的情況:

我們用一個(gè)int(11)類(lèi)型(范圍-2147483648 - 2147483647)來(lái)保存把一個(gè)ip地址用ip2long處理得到的結(jié)果,例如ip是’202.105.77.179′,那么在32位機(jī)器上得到的結(jié)果是:-899068493,而在64位機(jī)器上卻得到3395898803.然后把它寫(xiě)入數(shù)據(jù)庫(kù),由于超過(guò)int(11)的范圍,因此64位機(jī)器上的結(jié)果被保存為int(11)的最大值:2147483647.于是在從數(shù)據(jù)庫(kù)中取出的時(shí)候,便得到了錯(cuò)誤的結(jié)果,會(huì)得到”127.255.255.255″這個(gè)ip地址.

解決的辦法很多,比如可以用mysql的函數(shù):INET_ATON和INET_NTOA來(lái)處理ip地址;或者把保存ip地址的字段改為bigint類(lèi)型,這樣在64位機(jī)器上雖然保存的是3395898803,使用long2ip函數(shù)仍能得到正確的結(jié)果.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产免费自拍视频 | 自拍偷拍一区二区三区 | 在线观看亚洲视频 | 33eee在线视频免费观看 | 91免费在线 | 欧美性一区二区三区 | 一区在线视频 | 四虎动漫 | 亚洲精品美女在线观看 | 91精品国产91久久久久久最新 | 精品超碰 | 黄色片网站视频 | 色婷婷综合久久 | 91久久精品日日躁夜夜躁欧美 | 久久中文字幕一区 | 久久成| 天天干女人 | 日韩在线观看高清 | 91精品国产91久久久久久最新 | 国产午夜久久久久 | 日本视频二区 | 一级大片免费观看 | 久久手机免费视频 | 性做久久久久久久免费看 | 九一在线观看 | 国产精品a一区二区三区网址 | 在线视频中文字幕 | 精品久久久久久久久久久久久久 | 国产成人精品一区二区三区视频 | 久久久久久久一区二区三区 | 午夜精品一区二区三区在线视频 | 国产欧美日本 | 午夜精品在线 | 国产精品国产精品国产专区不片 | 欧美成人综合在线 | 北条麻妃国产九九九精品小说 | 在线国产视频 | 欧美video | 国家aaa的一级看片 操操操夜夜操 | 天天草天天干 | 亚洲性视屏 |