php - 哪个 MySQL 数据类型用于 IP 地址?

标签 php mysql types ip-address

Possible Duplicate:
How to store an IP in mySQL

我想从 $_SERVER['REMOTE_ADDR'] 和其他一些 $_SERVER 变量中获取 IP 地址,哪种数据类型适合这个?

VARCHAR(n) 吗?

最佳答案

由于 IPv4 地址是 4 字节长,您可以使用 INT (UNSIGNED)正好有 4 个字节:

`ipv4` INT UNSIGNED

还有 INET_ATONINET_NTOA转换它们:

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_ptoninet_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/

相关文章:

php - 从 DoExpressCheckoutPayment 回复中获取 transactionId

mysql - Grails中的SQL查询从两个具有外键关系的表中获取所有数据

python spark将dataframe列数据类型更改为int错误

c++ - 为什么无符号短(乘)无符号短转换为有符号整数?

php - 使用 mysqli_fetch_array 在 PHP 表 MySQL 中显示数据

php - 动态 JQUERY 不工作

php - 如何使用 PHP 制作类似插件的 Web 应用程序?

php - MySQL对同一列进行多次计数并将结果插入到另一个表中

php - 方法 [where] 不存在

types - Python:测试值是否可以在列表理解中转换为 int