inet_ntop и адреса IPv6 и PHP 5.5

У меня есть ошибка с PHP 5.5, которой не было с PHP5.3 и 5.4. С IPv6-адресами функция inet_ntop() выдает ошибку:

Недопустимое значение in_addr.

Вы можете посмотреть мою работу на Github (функция находится в Network.php, строка 88). Вы также можете просмотреть тестовое задание на Travis-CI.

У вас есть идеи, как это исправить?

Спасибо за помощь.


person Spomky-Labs    schedule 26.02.2014    source источник
comment
Примечание в документации может быть уместным: если PHP был собран с включенной поддержкой IPv6   -  person Steve-o    schedule 26.02.2014
comment
Какие данные вы передали этой функции? Включите сюда функцию (это однострочник!) и ее аргумент; не было причин ссылаться на github.   -  person Michael Hampton    schedule 27.02.2014
comment
Вызываемая функция getIPv6Range('fe80::10/64'). Функция должна вернуть массив с первым и последним адресом сети. Я преобразовываю этот параметр, чтобы получить IP и маску в двоичном формате, а затем получаю результат ('fe80::' и 'fe80::ffff:ffff:ffff:ffff'). У меня такая же проблема с другими наборами данных и PHP5.5, но отлично работает с другими версиями PHP.   -  person Spomky-Labs    schedule 28.02.2014


Ответы (1)


На самом деле, я не использовал эту функцию должным образом, и она отправляла искаженные данные. Теперь работает нормально, вы можете посмотреть исправленный класс здесь

В любом случае, спасибо за ваши ответы.

person Spomky-Labs    schedule 04.03.2014