好的,现在我知道类似的问题可能已被问过上百万次,但我在这方面是一个真正的新手,非常感谢您的帮助。
基本上,我想将访问者的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/