MySQL中INET_ATON()、INET_NTOA函数

对于 IPv4 地址。人们经常使用VARCHAR(15)列去存储IP地址。然而,它们实际上是32位无符号整数,不是字符串。用小数点将地址分成4段的表示方法只是为了让人们阅读容易。所以应该用无符号整数存储IP地址。MySQL 提供了 INET_ATON()INET_NTOA() 函数在这两种表示方法之间转换。MySQL 5.6 版本之后,也有了解释  IPv6 地址的方法,就是INET6_ATON() INET6_NTOA() 函数

INET_ATON(IP) 函数——把ip转为无符号整型(4-8位)

假如需要在表中查出IP 在 192.168.1.13 到 192.168.1.23之间的 IP 地址

SELECT * FROM ip_table WHERE INET_ATON(ip) > INET_ATON('192.168.1.13') AND INET_ATON(ip) < INET_ATON('192.168.1.23'); 

 

 

 INET_NTOA函数——把整型的ip转为字符串式的地址

插入数据前,先用inet_aton把ip地址转为整型,显示数据时,使用inet_ntoa把整型的ip地址转为字符串格式的地址显示即可。

INSERT INTO `ip_table`(`id`,`ip`) VALUES 
(1,inet_aton('192.168.1.1')),
(2,inet_aton('192.168.1.2')),
(3,inet_aton('192.168.1.3')),
(4,inet_aton('192.168.1.4')),
(5,inet_aton('192.168.1.5'));

 现在插入到数据库的数据如下:

接着转换成我们熟悉的 IP 地址

SELECT id,INET_NTOA(ip) AS ip FROM ip_table ;

 

 

 

 

 

 

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值