当前位置: 首页 > news >正文

IP地址在后端怎么存才好?

目录

一、地址的区别

二、字符串存取 

2.1 IPV4空间大小

2.2 IPV6空间大小

三、整数存取

四、总结

4.1 字符串存取优缺点

4.2 整数存取的优缺点


一、地址的区别

在网络中,IP地址分为IPV4和IPV6,IPV4是一共占32位的,每8位小数点分隔,IPV6占128位,16位为一组,一共是8组。

IPV4

列:192.168.1.12(每组转十进制后)

11000000.10101000.00000001.00001100(对应每组的二进制)

IPV6

列: 2001:0db8:85a3:0000:0000:8a2e:0370:7334(每组都是用16进制去表示的,冒号分隔) 

二、字符串存取 

一般思想就是将IP地址直接用字符串进行存取,这样就很方便,并且也很直观,但是可能在性能(比较,排序)方面有些不足,字符串通常操作比较慢。

2.1 IPV4空间大小

列如,存取192.168.1.12这个IPV4的地址,那么一个字符的大小为1字节,那么这个字符串的大小为12字节,对于IPV4的地址来说,最小地址为:1.1.1.1,最大是255.255.255.255,所以存储范围是7~15字节。

2.2 IPV6空间大小

若是直接存取IPV6地址(128位)为字符串,那么最大是存取39个字符,存储空间需要很大。

三、整数存取

由于IPV4总共是占32位,所以我们可以使用32位的无符号整数去存取每一组的二进制拼凑后的整数,这样会使得空间大小为4字节。

列如:11000000.10101000.00000001.00001100这个二进制去除小数点将其转换为十进制,大约是  12648196

同样IPV6也可以使用整数存取,我们可以将其拆分为俩个部分,以上面的IPV6为列:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

将其拆分为2001:0db8:85a3:0000和0000:8a2e:0370:7334,分别转整数,存俩个整数值,16进制转10进制。

四、总结

整数存取和字符串存取各有各的优缺点。

4.1 字符串存取优缺点

字符串存取上来说比较方便且直观,但是空间上消耗比较大,并且在进行IP地址范围查询与比较时,性能上也不是很快。

4.2 整数存取的优缺点

整数存储,空间上占优势,但是,也有一些进行CRUD操作时逻辑上的麻烦,因为,我们是把它拆分合并进行存储的整数,那么我们进行一些比较判断的时候,这个时候还需要进行合并,拼凑成完整的IP再去比较。

http://www.lryc.cn/news/408453.html

相关文章:

  • 《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • go get的原理
  • jenkins替换配置文件
  • C# Web控件与数据感应之 填充 HtmlTable
  • HAL库源码移植与使用之SPI驱动VS1053音频解码
  • RK3568 Linux 平台开发系列讲解(内核入门篇):从内核的角度看外设芯片的驱动
  • 初识C++ · AVL树(2)
  • LLM:归一化 总结
  • 蓝桥杯 2024 年第十五届省赛真题 —— 最大异或结点
  • AV1技术学习:Loop Restoration Filter
  • 如何使用python实现自动化办公?干货满满!
  • QT Creator下载安装详细教程(保姆级教程)
  • 无人机公司销售需要什么资质
  • 代码自动化重构工具OpenRewrite介绍
  • Win11安装Docker
  • Windows电脑如何启动RTSP服务实现本地摄像头数据共享
  • 探索 Spring WebFlux:构建响应式 Web 应用
  • C# 植物大战僵尸
  • css 作业 2
  • axios在vue中的使用
  • FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论
  • 【JavaEE初阶】线程的概念及创建
  • 0727,学什么学,周六就应该休息!!!!!
  • 【C#】获取DICOM图像像素的像素值
  • k8s多集群管理工具kubecm
  • 通过 WSL 2 在Windows 上挂载 Linux 磁盘
  • 【C#】在一个给定的宽、高范围内,获取到该多边形内部的所有坐标集合?
  • json的数据结构
  • html-docx-js和file-saver实现html导出word
  • 三维影像系统PACS源码,图像存储与传输系统,应用于医院中管理医疗设备如CT,MR等产生的医学图像的信息系统