Вывод ip2long чисел (PHP)

Функция ip2long() преобразует ip-адрес в число UNSIGNED INT. И если результат преобразования превысит 2147483647 (ip: 128.255.255.255), то на экран будет выведено отрицательное число.

Пример

Сделаем несколько преобразований и выведем их на экран.

<?php // Все в порядке echo ip2long('10.127.10.94'); // 176097886 // Последнее значение, которое будет выведено корректно echo ip2long('127.255.255.255'); // 2147483647 // Перебор echo ip2long('163.250.20.136'); // -1543891832 ?>

Решение

Выводить такие числа нужно при помощи функций форматирование строк (printf, sprintf).

<?php printf('%u', ip2long('20.157.60.194')); // 345849026 printf('%u', ip2long('143.150.50.165')); // 2408985253 printf('%u', ip2long('250.250.20.136')); // 4210693256 ?>

Категории

ПрограммированиеPHPЧисла в PHPЧисла

Читайте также

Комментарии