0

0

利用mysql的inet_aton()和inet_ntoa()函数存储IP地址_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:49:26

|

1270人浏览过

|

来源于php中文网

原创

bitsCN.com

mysql> create table jackbillow (ip int unsigned, name char(1));
query ok, 0 rows affected (0.02 sec)

 

PHP的使用技巧集
PHP的使用技巧集

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。下面介绍了十个PHP高级应用技巧。 1, 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里

下载

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)

 

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Java 设计模式与重构实践
Java 设计模式与重构实践

本专题专注讲解 Java 中常用的设计模式,包括单例模式、工厂模式、观察者模式、策略模式等,并结合代码重构实践,帮助学习者掌握 如何运用设计模式优化代码结构,提高代码的可读性、可维护性和扩展性。通过具体示例,展示设计模式如何解决实际开发中的复杂问题。

0

2026.02.03

C# 并发与异步编程
C# 并发与异步编程

本专题系统讲解 C# 异步编程与并发控制,重点介绍 async 和 await 关键字、Task 类、线程池管理、并发数据结构、死锁与线程安全问题。通过多个实战项目,帮助学习者掌握 如何在 C# 中编写高效的异步代码,提升应用的并发性能与响应速度。

0

2026.02.03

Python 强化学习与深度Q网络(DQN)
Python 强化学习与深度Q网络(DQN)

本专题深入讲解 Python 在强化学习(Reinforcement Learning)中的应用,重点介绍 深度Q网络(DQN) 及其实现方法,涵盖 Q-learning 算法、深度学习与神经网络的结合、环境模拟与奖励机制设计、探索与利用的平衡等。通过构建一个简单的游戏AI,帮助学习者掌握 如何使用 Python 训练智能体在动态环境中作出决策。

0

2026.02.03

python end=
python end=

本专题整合了python中end=的相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.03

python运算符优先级
python运算符优先级

本专题整合了python运算符优先级排序、用法相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.03

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

1

2026.02.03

python源码大全
python源码大全

本专题整合了python源码相关内容合集,阅读专题下面的文章了解更多详细内容。

1

2026.02.03

python 解包
python 解包

本专题整合了python解包的概念、操作方法等等内容,阅读专题下面的文章了解更多详细教程。

2

2026.02.03

Python 序列化
Python 序列化

本专题整合了python序列化、反序列化相关内容,阅读专题下面的文章了解更多详细内容。

12

2026.02.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.1万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 821人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号