Подтвердить что ты не робот

Сохранение IP-адреса в базе данных MySQL с использованием PHP

Каков правильный тип поля для IP-адреса в mysql? и каков правильный способ его хранения с помощью PHP?

4b9b3361

Ответ 1

Этот учебник может вам помочь.

Самый эффективный способ сохранения адресов IPv4 - это поле INT (а не VARCHAR, как вы могли бы ожидать). Вы конвертируете их, используя PHP ip2long и обратно, используя MySQL INET_NTOA или PHP long2ip.

Если вам нужно сохранить IPv6, вам нужно вместо этого использовать поле BINARY и PHP inet_pton.

Ответ 2

вы можете сохранить их в двоичном поле длиной 128 бит (16 байт, BINARY(16) или VARBINARY(16)). для преобразования любого IP-адреса в его двоичное представление вы можете использовать функцию php inet_pton. этот метод будет работать как для адресов IPv4, так и для IPv6. inet_ntop можно использовать для возврата строкового представления сохраненного ip-адреса (независимо от версии)

Ответ 3

Как правило, вы можете пойти с VARCHAR (45), поскольку он будет достаточно длинным, чтобы даже хранить IPv6.