Сохраните IPv6 в базе данных

Что наиболее успешная практика состоит в том, чтобы снабдить IP PHP в базе данных MySQL? Существует функция, вызванная ip2long - но это только для IPv4. Но что относительно IPv6?

Я знаю функцию php, которая является для IP IPv6, но он не работает над Windows с PHP <Версия 5.3

15
задан Jon Seigel 2 May 2010 в 20:32
поделиться

4 ответа

Путекер-десятичный IPv4 адрес может быть преобразован в целое число с максимальным размером 32 бита. Адреса IPv6 - 128 бит. Поскольку 128 битов не подходят в PHP INT, это будет боль для работы в PHP.

Если вы просто хотите подключить и использовать адреса IPv6, сохраните себя проблемы и сохраните их в виде текста. Если вы хотите нанести NetMasks и рассчитайте подсети, вам нужно их преобразовывать.

9
ответ дан 1 December 2019 в 01:53
поделиться

Фактические данные файла см. в ZipFile # getInputStream (ZipEntry) . Javadocs для этого класса объяснить, как он должен быть использован.

-121--2975531-

Решите следующую систему уравнений:

p = p0 + (p1 - p0) * s + (p2 - p0) * t

пункт p находится внутри треугольника, если 0 < = s < = 1 и 0 < = t < = 1 и s + t < = 1 .

s , t и 1 - s - t называются барицентрическими координатами пунктов p .

-121--585471-

Во втором комментарии по адресу ip2long руководство по функциям имеется функция ip2long6 для IPv6 (далее).

0
ответ дан 1 December 2019 в 01:53
поделиться
list2 = ['%sbar' % (x,) for x in list]

И не используйте list в качестве имени; он затеняет встроенный тип.

-121--1825083-

Проблема с запросом ключа в том, что это означает, что вам придется запрашивать каждый раз при запуске (если вы храните ключ, у вас та же проблема). Это может быть хорошим компромиссом, если то, что вы защищаете, особенно чувствительно.

В целом, Chrome использует философию доверия к ОС для защиты профиля пользователя, в котором хранятся эти данные, поэтому если вы используете локальное место хранения для хранения паролей, это не отличается от того, что Chrome делает сегодня с автоматическим заполнением паролей, историей браузера и т.д.

-121--3894661-

Вы можете просто сохранить его как последовательность в CHAR Я полагаю

0
ответ дан 1 December 2019 в 01:53
поделиться

есть php функция inet_pton, она превратит строку ip адреса в его двоичное представление (для ipv4 и ipv6). затем вы можете хранить его как binary(16) в вашей базе данных mysql.

чтобы снова получить человекочитаемый адрес, используйте inet_ntop

9
ответ дан 1 December 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: