php - 在 MySQL 数据库中存储 IP 地址(IPv4 和 IPv6)

标签 php mysql ip ipv6 ipv4

好的,现在我知道类似的问题可能已被问过上百万次,但我在这方面是一个真正的新手,非常感谢您的帮助。

基本上,我想将访问者的IP地址存储在MySQL中,以供以后检索和验证。我首先需要知道我需要使用什么类型的字段来存储 IP 地址。我还希望尽可能使系统与 IPv6 地址兼容。

提前致谢

最佳答案

要存储 IPv4,您可以使用 INT UNSIGNED,而对于 IPv6,您需要 decimal(39,0), 将 ip 存储在表中可以使用函数INET_ATON:

INSERT INTO table (ipcol) VALUES (INET_ATON('192.168.0.10'));

并使用函数 INET_NTOA 取回它:

SELECT INET_NTOA(ipcol) AS ip FROM table;

这回答了 MySQL IPv6 支持之前存在的问题; 用户应该知道 MySQL 现在原生支持 IPv6: https://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html

关于php - 在 MySQL 数据库中存储 IP 地址(IPv4 和 IPv6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589887/

相关文章:

PHP 启动 : Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_12c.dll' - The specified procedure could not be found

php - Laravel 5 找不到 css 文件

mysql - 如何使用 mule 调用 MySQL 存储过程 3.4.2。我是 Mule 新手,项目团队正在使用 3.4.2 版本

php - MySQL海量数据操作处理

php - 使用 mysql rand() 增加发生率

regex - 从 grep 输出中按索引获取行

html - 创建一个指向非 80 端口的 IP 的域名

amazon-web-services - kubectl获取服务结果集中的外部IP列为空

PHP:每 10 秒检查一次 mysql 数据库是否有任何新行

php - 将 csv 从 ajax 发送到 php