全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

本文将介绍如何在数据库中使用合适格式保存ip地址数据,并能方便的对ip地址进行比较的方法。

1、保存ip地址到数据库

数据库中保存ip地址,字段一般会定义为:

`ip` char(15) NOT NULL,

因为ip地址(255.255.255.255)的最大长度是15,使用15位char已足够。

创建表user

CREATE TABLE `user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(30) NOT NULL,
 `ip` char(15) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB;

插入几条数据

INSERT INTO `user` (`id`, `name`, `ip`) VALUES
(2, 'Abby', '192.168.1.1'),
(3, 'Daisy', '172.16.11.66'),
(4, 'Christine', '220.117.131.12');

2、mysql inet_aton 与 inet_ntoa 方法

mysql提供了两个方法来处理ip地址

inet_aton 把ip转为无符号整型(4-8位)

inet_ntoa 把整型的ip转为电地址

插入数据前,先用inet_aton把ip地址转为整型,可以节省空间,因为char(15) 占16字节。

显示数据时,使用inet_ntoa把整型的ip地址转为电地址显示即可。

例子:

CREATE TABLE `user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(100) NOT NULL,
 `ip` int(10) unsigned NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB;

插入几条数据

INSERT INTO `user` (`id`, `name`, `ip`) VALUES
(2, 'Abby', inet_aton('192.168.1.1')),
(3, 'Daisy', inet_aton('172.16.11.66')),
(4, 'Christine', inet_aton('220.117.131.12'));

mysql> select * from `user`;
+----+-----------+------------+
| id | name  | ip   |
+----+-----------+------------+
| 2 | Abby  | 3232235777 |
| 3 | Daisy  | 2886732610 |
| 4 | Christine | 3698688780 |
+----+-----------+------------+

查询显示为电地址

mysql> select id,name,inet_ntoa(ip) as ip from `user`;
+----+-----------+----------------+
| id | name  | ip    |
+----+-----------+----------------+
| 2 | Abby  | 192.168.1.1 |
| 3 | Daisy  | 172.16.11.66 |
| 4 | Christine | 220.117.131.12 |
+----+-----------+----------------+

3、比较方法

如果需要找出在某个网段的用户(例如:172.16.11.1 ~ 172.16.11.100),可以利用php的ip2long方法,把ip地址转为整型,再进行比较。

<?php
$ip_start = '172.16.11.1';
$ip_end = '172.16.11.100';

echo 'ip2long(ip_start):'.sprintf('%u',ip2long($ip_start)); // 2886732545
echo 'ip2long(ip_end):'.sprintf('%u',ip2long($ip_end));  // 2886732644
?>

查询:

mysql> select ip,name,inet_ntoa(ip) as ip from `user` where ip>=2886732545 and ip<=2886732644;
+------------+-------+---------------+
| ip   | name | ip   |
+------------+-------+---------------+
| 2886732610 | Daisy | 172.16.11.66 |
+------------+-------+---------------+

注意:使用ip2long方法把ip地址转为整型时,对于大的ip会出现负数,出现原因及处理方法可以参考我另一篇文章:《详谈php ip2long 出现负数的原因及解决方法

4、总结

1、保存ip地址到数据库,使用unsigned int格式,插入时使用inet_aton方法把ip先转为无符号整型,可以节省存储空间。

2、显示时使用inet_ntoa把整型ip地址转为电地址。

3、php ip2long转ip为整型时,需要注意出现负数。

以上这篇mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# mysql  # inet_aton和inet_ntoa  # MySQL存储IP地址的方法  # mysql跨数据库复制表(在同一IP地址中)示例  # 将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法  # 利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享  # MySql通过ip地址进行访问的方法  # 整型  # 给大家  # 几条  # 数据库中  # 希望能  # 这篇  # 并能  # 可以利用  # 解决方法  # 先用  # 方法来  # 需要注意  # 小编  # 大家多多  # 如何在  # 在某个  # int  # unsigned  # id  # sql 


相关文章: 如何使用Golang table-driven基准测试_多组数据测量函数效率  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  历史网站制作软件,华为如何找回被删除的网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  如何在云服务器上快速搭建个人网站?  如何挑选优质建站一级代理提升网站排名?  C++时间戳转换成日期时间的步骤和示例代码  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何在Windows虚拟主机上快速搭建网站?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  如何获取开源自助建站系统免费下载链接?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何快速搭建高效香港服务器网站?  如何快速生成橙子建站落地页链接?  如何通过网站建站时间优化SEO与用户体验?  模具网站制作流程,如何找模具客户?  建站之星导航配置指南:自助建站与SEO优化全解析  香港服务器如何优化才能显著提升网站加载速度?  如何快速生成专业多端适配建站电话?  如何在万网自助建站平台快速创建网站?  如何用AWS免费套餐快速搭建高效网站?  建站之星安装后如何自定义网站颜色与字体?  如何获取上海专业网站定制建站电话?  如何选择高效稳定的ISP建站解决方案?  建站之星收费标准详解:套餐费用及年费价格表一览  如何通过cPanel快速搭建网站?  如何在Windows环境下新建FTP站点并设置权限?  如何在建站之星网店版论坛获取技术支持?  如何用VPS主机快速搭建个人网站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何制作网站标识牌,动态网站如何制作(教程)?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  建站之星代理如何获取技术支持?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建设网站制作价格,怎样建立自己的公司网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何快速搭建高效WAP手机网站?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  建站之星上传入口如何快速找到?  已有域名和空间如何搭建网站?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  小型网站制作HTML,*游戏网站怎么搭建?  ,制作一个手机app网站要多少钱?  网站制作说明怎么写,简述网页设计的流程并说明原因?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何通过VPS建站实现广告与增值服务盈利? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。