ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

ip2long(string$ip): int|false

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

Функция ip2long() также будет работать с неполными IP-адресами. Смотрите » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm для более подробной информации.

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

ip

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

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

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

Примеры

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

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

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

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

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

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

Примечания

Замечание:

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

Замечание:

Функция ip2long() возвратит -1 для IP 255.255.255.255 в 32-битных системах из-за целочисленного переполнения.

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

  • long2ip() - Конвертирует целое число в IPv4-адрес
  • sprintf() - Возвращает отформатированную строку
To Top