📅  最后修改于: 2023-12-03 15:23:13.719000             🧑  作者: Mango
在 MySQL 中,可以使用 INET_ATON()
函数将 IP 地址转换为整数,然后将整数存储在 INT 类型的列中。同时,也可以使用 INET_NTOA()
函数将整数转换回 IP 地址。
下面是一个示例代码片段:
-- 创建表
CREATE TABLE `ip_addresses` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ip_address` INT UNSIGNED NOT NULL
);
-- 插入 IP 地址
INSERT INTO `ip_addresses` (`ip_address`) VALUES (INET_ATON('192.168.0.1'));
-- 查询 IP 地址
SELECT INET_NTOA(`ip_address`) FROM `ip_addresses` WHERE `id` = 1;
在这个示例中,我们创建了一个名为 ip_addresses
的表,并使用 INET_ATON()
函数将 192.168.0.1
转换为整数,并将其插入到 ip_addresses
表的 ip_address
列中。之后,我们使用 INET_NTOA()
函数将整数转换回 IP 地址,并从 ip_addresses
表中查询出该 IP 地址。
需要注意的是,INET_ATON()
函数只支持 IPv4 地址。如果需要存储 IPv6 地址,可以考虑使用 VARBINARY()
或 BLOB()
类型的列。同时,也可以考虑使用新的数据类型 INET6_ATON()
和 INET6_NTOA()
,用于存储和操作 IPv6 地址。