Хранить и искать диапазоны IPv6 в PHP MySQL - PullRequest
2 голосов
/ 11 февраля 2012

У меня есть база данных CVS, которая дает диапазон V6 2001:1800::/32 и код страны US.Пока у меня они есть в $ip_address $cc_code.

Мне нужно хранить каждый диапазон в MySQL.Мне также нужно взять IP-адрес пользователя и получить код страны.Я уже получил работу V4, сохранив начальный и конечный диапазоны, но база данных уже дала мне это.Так что я застрял на том, чтобы заставить V6 работать.Я сделал несколько поисков в Google и не могу найти много на этом.Может я неправильно спрашиваю?Так может кто-нибудь здесь дать мне совет?Я уже знаю, как обнаружить V4 и V6.Так что у меня уже много чего сделано.Просто сохраняю диапазон / код и удаляю его там, где я застрял.

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

IP-адреса в основном целые числа, вам просто нужно преобразовать их и взаимодействовать с основными математическими навыками: ГДЕ $ ip МЕЖДУ start И end http://www.samclarke.com/2011/07/php-ipv6-to-128bit-int/

0 голосов
/ 12 ноября 2015

MySQL 5.6.3 представил следующие новые функции для работы с адресами IPv6:

INET6_ATON () Возвращает числовое значение IP-адреса

INET6_NTOA () Возвращает IP-адрес из числового значения

Например, hex(INET6_ATON('fdfe::5a55:caff:fefa:9089')) возвращает FDFE0000000000005A55CAFFFEFA9089

Вы можете хранить IPv6 в своей базе данных как VARBINARY(16)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...