首頁  >  文章  >  後端開發  >  php ip2long函數怎麼用

php ip2long函數怎麼用

藏色散人
藏色散人原創
2020-06-30 11:10:382843瀏覽

php ip2long函數用於將IPV4的字串網際網路協定轉換成長整數數字,其使用語法是“ip2long ( string $ip_address ) : int”,參數“ip_address”表示標準格式的位址。

php ip2long函數怎麼用

php ip2long函數

ip2long — 將IPV4 的字串網路協定轉換成長整數數字

說明 

ip2long ( string $ip_address ) : int

函數ip2long() 傳回IPV4 網路位址的長整數格式,從標準網路位址格式(點字串)轉換得到。

ip2long() 还可以与非完整IP进行工作。 阅读 » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm 获得更多信息。

參數 

ip_address

一個標準格式的位址。

回傳值 

回傳IP位址轉換後的數字 或 FALSE 如果 ip_address 是無效的。

更新日誌 

版本 

5.5.0 Prior to this version, on Windows ip2long() would sometimes return a valid number even if passed a value which was not an (IPv4) Internet Protocol dotted address.

5.2.10 再此之前的版本, ip2long() 有時會傳回即使這不是一個IPV4的標準位址的數位位址。

範例 

Example #1 ip2long() 範例

<?php
$ip = gethostbyname(&#39;www.example.com&#39;);
$out = "The following URLs are equivalent:<br />\n";
$out .= &#39;http://www.example.com/, http://&#39; . $ip . &#39;/, and http://&#39; . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Example #2 顯示IP位址

第二個範例說明列印一個轉換後面的位址使用printf() 在PHP4和PHP5的功能:

<?php
$ip   = gethostbyname(&#39;www.example.com&#39;);
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
    echo &#39;Invalid IP, please try again&#39;;
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

註解 

Note:

因為PHP的integer 類型是有符號,而且有許多的IP位址講導致在32位元系統的情況下為負數, 你需要使用"%u" 進行轉換透過sprintf() 或printf() 得到的字串來表示無符號的IP位址。

Note:

ip2long() 將回傳FALSE 在IP是255.255.255.255 的情況,版本為PHP 5 <= 5.0.2. 修復後PHP 5.0.3 會回傳- 1 (與PHP4相同).

更多相關知識,請造訪PHP中文網!

以上是php ip2long函數怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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