'INSERT INTO `table` (`ipv6`) VALUES ("'.mysqli_real_escape_string(inet_pton('2001:4860:a005::68')).'")'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton($row['ipv6']);
Ответ 2
У вас есть две возможности (для IPv4-адреса):
a varchar(15), если вы хотите сохранить IP-адрес в виде строки
192.128.0.15 например
a integer (4 байта), если вы конвертируете IP-адрес в целое число
3229614095 для IP, который я использовал до
Второе решение потребует меньше места в базе данных и, вероятно, является лучшим выбором, даже если это подразумевает небольшие манипуляции при хранении и извлечении данных (преобразование их из/в строку).
Для адресов IPv4 вы можете использовать VARCHAR для хранения их в виде строк, но также и хранить их в виде long integesrs INT(11) UNSIGNED. Вы можете использовать функцию MySQL INET_ATON(), чтобы преобразовать их в целочисленное представление. Преимущество этого в том, что это позволяет вам легко сравнивать их, например BETWEEN query