- 使用MySQL函数
-
MySQL函数
inet_aton : 将IP转为整型
inet_ntoa : 将整型转为IP- 建表
CREATE TABLE `testip` ( `IP` bigint(10) NULL )
- 插入语句
INSERT INTO testip (IP) VALUES (INET_ATON('255.255.255.255'))
IP 4294967295 - 查看语句
SELECT INET_NTOA(IP) IP FROM testip
IP 255.255.255.255 - 错误
Out of range value for column 'IP' at row 1
将IP的字段类型改为 bigint
-
使用PHP函数
- php函数 ip2long() 将IPV4地址转为数字格式
- PHP函数 long2ip() 将数组格式转为IP地址类型
$ip = '172.28.0.122'; $iplong = sprintf('%u',ip2long($ip)); echo $iplong.PHP_EOL;//2887516282 echo long2ip($iplong);//172.28.0.122
直接使用ip2long()函数会出现转换后为负数的情况(IP较大),使用%u来格式化为无符号整型。
-
链接
MySQL存储IPv4的方式:https://www.cnblogs.com/phpper/p/10220703.html
ip2long转换后为负数:https://www.cnblogs.com/phpper/p/10220302.html