ip2long

(PHP 4, PHP 5, PHP 7)

ip2longКонвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)

Описание

int ip2long ( string $ip_address )

Функция ip2long() преобразует IPv4-адрес сети Интернет из стандартного формата (строка с точками) в целое число (long).

Функция ip2long() также будет работать с неполными IP-адресами. См. » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm для более подобной информации.

Список параметров

ip_address

Адрес в стандартном формате.

Возвращаемые значения

Возвращает целое число или FALSE, если параметр ip_address содержит ошибку.

Список изменений

Версия Описание
5.5.0 До этой версии, в Windows ip2long() иногда могло быть возвращено корректрое число, даже если на вход был подан некорректный IPv4 адрес.
5.2.10 До этой версии функция ip2long() могла иногда возвращать верное число, даже если отправленное значение не было Интернет адресом (IPv4) в точечном формате.

Примеры

Пример #1 Пример использования ip2long()

<?php
$ip 
gethostbyname('www.example.com');
$out "Следующие URL эквивалентны:<br />\n";
$out .= 'http://www.example.com/, http://' $ip '/, and http://' sprintf("%u"ip2long($ip)) . "/<br />\n";
echo 
$out;
?>

Пример #2 Отображение IP адресов

Второй пример показывает как выводить сконвертированные адреса с помощью функции printf():

<?php
$ip   
gethostbyname('www.example.com');
$long ip2long($ip);

if (
$long == -|| $long === FALSE) {
    echo 
'Неверный IP, попробуйте еще раз';
} else {
    echo 
$ip   "\n";           // 192.0.34.166
    
echo $long "\n";           // -1073732954
    
printf("%u\n"ip2long($ip)); // 3221234342
}
?>

Примечания

Замечание:

Ввиду того, что PHP тип integer является знаковым, и на 32-битных системах большое количество IP адресов будет представлено в виде отрицательных чисел, необходимо использовать "%u" в функции sprintf() или printf() для получения IP адреса в строковом беззнаковом виде.

Замечание:

Функция ip2long() возвратит FALSE для IP 255.255.255.255 в PHP 5 <= 5.0.2. Это было исправлено в PHP 5.0.3, теперь возвращается -1.

Смотрите также

  • long2ip() - Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
  • sprintf() - Возвращает отформатированную строку