MySql存储IP地址(兼容ipv4和ipv6)
MySql存储IP地址(兼容ipv4和ipv6)
最近项目涉及到IP白名单的问题,需要设计表来存储IP地址,网上的方法针对IPV4和IPV6用什么类型存储也没有个统一的答案(都是抄来抄去。。。。)
1.使用VARBINARY 类型来存储IP地址
ipv4地址32位:
255.255.255.255 (十进制表示)
ipv6地址128位:
2001:0db8:0000:0000:0000:ff00:0042:8329
因此用VARBINARY(16)就可满足ipv4和ipv6的长度要求
2.表的设计
CREATE TABLE `t_ip` (`id` INT NOT NULL AUTO_INCREMENT,`ip_address` VARBINARY(16) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
3.插入数据
MySQL函数
INET6_ATON:将IP转化为二进制数据
INET6_NTOA:将二进制数据转化为IP
分别插入一条IPV4和IPV6的数据
INSERT INTO `t_ip` (`id`, `ip_address`) VALUES
(1, INET6_ATON('192.168.1.1')),
(2, INET6_ATON('FE80:0000:0000:0000:0202:B3FF:FE1E:8329'))
4.查询
SELECT id,INET6_NTOA(ip_address) AS ip FROM `t_ip`;
结果显示
MySql存储IP地址(兼容ipv4和ipv6)相关推荐
- IP地址,IPV4与IPV6
目录 1.IP地址 2.IPV4 2.1.IPv4数据报格式 2.2.网络号和主机号 2.3.IP地址的分类 2.4.子网划分与子网掩码 2.4.1.子网划分 2.4.2子网掩码 2.5.网络地址转换 ...
- MySQL 存储 IP 地址
在 MySQL 中,如果是以字符串的形式存储 IP 地址,在正常格式下,最小长度为 7 个字符 (0.0.0.0),最大长度为 15 个 (255.255.255.255),我们通常会使用 varch ...
- mysql存储ip地址_MySQL怎样存储IP地址
为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...
- 【mysql】MySQL存储IP地址
为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...
- IP地址、IPv4和IPv6的关系
什么是IP地址? 当我们有一台电脑的时候,能做的事情就会非常有限,当你有两台电脑,你就需要将两台电脑进行相连,让他们进行协同工作,但是当你有三台,甚至更多的的时候,还能通过仅仅网线将他们互联吗? 可以 ...
- C# 获取本机IP地址,IPv4,IPv6(保姆级)
每日一遍:今天你学习了吗? 前言: 在我们使用C# WinForm中,我们有时候是需要或者自己本机的IP地址进行处理,今天我们学习一下如何使用C# Winform获取主机的IP地址.现在博主手把手教你 ...
- MySQL如何有效的存储IP地址
文章目录 序言 工具类实现转换 数据库函数实现转换 一.IP地址应该怎么存 二.整数存储 IP 地址的查询性能实验 1.测试范围查询: 2.IP精确查询: 3.整理一下结果发现: 总结 首先就来阐明一 ...
- mysql数据库ip地址_MySQL数据库存储IP地址的方法
为什么要问如何存储IP? 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中 ...
- MySQL怎样存储IP地址
为什么要问如何存储IP 首先就来阐明一下部分人得反问:为什么要问IP得怎样存,直接varchar类型不就得了吗? 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能.而数据库设计是程序设计中不 ...
最新文章
- Linux进程描述符task_struct结构体简析
- stealwatch里的安全功能——ETA结果会显示加密套件以及key长度,还有流量大小(例如41MB)...
- 数据结构与算法之选择排序
- 启动spark集群,JAVA_HOME is not set
- python简单命令语句_Python语言----linux常用命令(13)
- 双卡项目如何在状态栏显示或隐藏G,3G以及卡1和卡2的信号标识
- linux编码安装mysql_在Ubuntu 15.10下安装mysql设置数据库编码
- java泛型实验报告,java实验报告异常集合类和泛型
- 【OpenCV】目标检测
- 【转】Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 电脑没声音,音频设备无法使用。扬声器安装程序unknown
- Java随意输入字符串,如果含有$将该字符及之前一个字符的去掉
- 旧BugkuCTF—部分wp
- nacos 适配人大金仓数据
- android 百度网盘 播放器,最好用的安卓播放器,支持云盘播放,看电影必备
- 亚马逊aws 服务器删除_亚马逊aws服务器免费套餐及被扣款怎么办
- kylin(麒麟)系统高分率字体小解决方案
- ISC 2018 蓝鲸魔塔线上赛-pwn
- TRIZ创新方法——现代TRIZ理论
- 使用一个线性回归模型来拟合身高-体重的数据