美文网首页
MySql | INET_ATON和INET_NTOA

MySql | INET_ATON和INET_NTOA

作者: 七喜丶 | 来源:发表于2022-04-29 10:04 被阅读0次

    对于IPv4地址。人们经常使用VARCHAR(15)列去存储IP地址。然而,它们实际上是32位无符号整数,不是字符串。用小数点将地址分成4段的表示方法只为了让人们阅读容易。所以应该用无符号整数存储IP地址。MySQL提供了 INET_ATON()INET_NTOA()函数在这两种表示方法之间转换。MySQL5.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_NOTA(IP)函数 ——把整型的IP转为字符串式的地址

    插入数据前,先用INET_ATON() 把ip地址转为整型,显示数据时,使用 INET_NTOA()把整型的IP地址转为字符串格式的地址显示。

    新增IP地址数据

    INSERT INTO `ip_address`(`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_address ;
    

    相关文章

      网友评论

          本文标题:MySql | INET_ATON和INET_NTOA

          本文链接:https://www.haomeiwen.com/subject/awllyrtx.html