Eftersom IPv4-adresser är 4 byte långa kan du använda en INT (OSIGNED
)
som har exakt 4 byte:
`ipv4` INT UNSIGNED
Och INET_ATON
och INET_NTOA
för att konvertera dem:
INSERT INTO `table` (`ipv4`) VALUES (INET_ATON("127.0.0.1"));
SELECT INET_NTOA(`ipv4`) FROM `table`;
För IPv6-adresser kan du använda en BINÄR
istället:
`ipv6` BINARY(16)
Och använd PHP:s inet_pton
och inet_ntop
för konvertering:
'INSERT INTO `table` (`ipv6`) VALUES ("'.mysqli_real_escape_string(inet_pton('2001:4860:a005::68')).'")'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton($row['ipv6']);