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("%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中文網其他相關文章!