gpt4 book ai didi

利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

mysql> create table jackbillow (ip int unsigned, name char(1));  Query OK, 0 rows affected (0.02 sec)  mysql> insert into jackbillow values(inet_aton('192.168.1.200'), 'A'), (inet_aton('200.100.30.241'), 'B');  Query OK, 2 rows affected (0.00 sec)  Records: 2 Duplicates: 0 Warnings: 0  mysql> insert into jackbillow values(inet_aton('24.89.35.27'), 'C'), (inet_aton('100.200.30.22'), 'D');  Query OK, 2 rows affected (0.00 sec)  Records: 2 Duplicates: 0 Warnings: 0  mysql> select * from jackbillow;  +------------+------+  | ip | name |  +------------+------+  | 3232235976 | A |  | 3362004721 | B |  | 408494875 | C |  | 1690836502 | D |  +------------+------+  4 rows in set (0.00 sec)  mysql> select * from jackbillow where ip = inet_aton('192.168.1.200');  +------------+------+  | ip | name |  +------------+------+  | 3232235976 | A |  +------------+------+  1 row in set (0.00 sec)  mysql> select inet_ntoa(ip) from jackbillow;  +----------------+  | inet_ntoa(ip) |  +----------------+  | 192.168.1.200 |  | 200.100.30.241 |  | 24.89.35.27 |  | 100.200.30.22 |  +----------------+  4 rows in set (0.00 sec)  当前很多应用都适用字符串char(15)来存储IP地址(占用16个字节),利用inet_aton()和inet_ntoa()函数,来存储IP地址效率很高,适用unsigned int 就可以满足需求,不需要使用bigint,只需要4个字节,节省存储空间,同时效率也高很多。  如果IP列有索引,可以使用下面方式查询:  mysql> select inet_aton('100.200.30.22');  +----------------------------+  | inet_aton('100.200.30.22') |  +----------------------------+  | 1690836502 |  +----------------------------+  1 row in set (0.00 sec)  mysql> select * from jackbillow where ip=1690836502;  +------------+------+  | ip | name |  +------------+------+  | 1690836502 | D |  +------------+------+  1 row in set (0.00 sec)  mysql> select inet_ntoa(ip),name from jackbillow where ip=1690836502;  +---------------+------+  | inet_ntoa(ip) | name |  +---------------+------+  | 100.200.30.22 | D |  +---------------+------+  1 row in set (0.00 sec)  对于LIKE操作,可以使用下面方式:  mysql> select inet_ntoa(ip) from jackbillow;  +----------------+  | inet_ntoa(ip) |  +----------------+  | 192.168.1.200 |  | 200.100.30.241 |  | 24.89.35.27 |  | 100.200.30.22 |  | 192.168.1.100 |  | 192.168.1.20 |  | 192.168.2.20 |  +----------------+  7 rows in set (0.00 sec)  mysql> select inet_aton('192.168.1.0');  +--------------------------+  | inet_aton('192.168.1.0') |  +--------------------------+  | 3232235776 |  +--------------------------+  1 row in set (0.00 sec)  mysql> select inet_aton('192.168.1.255');  +----------------------------+  | inet_aton('192.168.1.255') |  +----------------------------+  | 3232236031 |  +----------------------------+  1 row in set (0.00 sec)  mysql> select inet_ntoa(ip) from jackbillow where ip between 3232235776 and 3232236031;  +---------------+  | inet_ntoa(ip) |  +---------------+  | 192.168.1.200 |  | 192.168.1.100 |  | 192.168.1.20 |  +---------------+  3 rows in set (0.00 sec)  mysql> select inet_ntoa(ip) from jackbillow where ip between inet_aton('192.168.1.0') and inet_aton('192.168.1.255');  +---------------+  | inet_ntoa(ip) |  +---------------+  | 192.168.1.200 |  | 192.168.1.100 |  | 192.168.1.20 |  +---------------+  3 rows in set (0.00 sec) 。

最后此篇关于利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享的文章就讲到这里了,如果你想了解更多关于利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com