php ip2long函數怎麼用

2020-07-16 10:06:27

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

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('www.example.com');
$out = "The following URLs are equivalent:<br />n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />n";
echo $out;
?>

Example #2 顯示IP地址

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

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
    echo 'Invalid IP, please try again';
} else {
    echo $ip   . "n";           // 192.0.34.166
    echo $long . "n";           // -1073732954
    printf("%un", 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函數怎麼用的詳細內容,更多請關注TW511.COM其它相關文章!