Possible Duplicate:
How to store an IP in mySQL
我想从 $_SERVER['REMOTE_ADDR']
和其他一些 $_SERVER
变量中获取 IP 地址,哪种数据类型适合这个?
是 VARCHAR(n)
吗?
最佳答案
由于 IPv4 地址是 4 字节长,您可以使用 INT
(UNSIGNED
)正好有 4 个字节:
`ipv4` INT UNSIGNED
INSERT INTO `table` (`ipv4`) VALUES (INET_ATON("127.0.0.1"));
SELECT INET_NTOA(`ipv4`) FROM `table`;
对于 IPv6 地址,您可以使用 BINARY
而是:
`ipv6` BINARY(16)
并使用 PHP’s inet_pton
和 inet_ntop
转换:
'INSERT INTO `table` (`ipv6`) VALUES ("'.mysqli_real_escape_string(inet_pton('2001:4860:a005::68')).'")'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton($row['ipv6']);
关于php - 哪个 MySQL 数据类型用于 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133580/