当前位置: 首页 > 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再去比较。

相关文章:

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

目录 一、地址的区别 二、字符串存取 2.1 IPV4空间大小 2.2 IPV6空间大小 三、整数存取 四、总结 4.1 字符串存取优缺点 4.2 整数存取的优缺点 一、地址的区别 在网络中,IP地址分为IPV4和IPV6,IPV4是一共占32位的,每8位小数点分隔&…...

《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《通讯世界》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《通讯世界》级别? 答:国家级。主管单位:科学技术部 主办单位:中国科学技…...

go get的原理

1、GOPROXY 可以写在os的环境变量中,也可以写在go的环境变量中 GOPROXYhttps://goproxy.cn,direct 表示先去第一个网址下载,下载不到,就直接下载 也可以配置GOPRIVATE私有仓库,遇到私有仓库中的包,就直接下载 2、go…...

jenkins替换配置文件

1.点击首页的【Manage Jenkins】-【Manage Plugins】,在选项【Available plugins】安装 Config File Provider Plugin ,安装后重启jenkins 2.安装完成后会有这个图标,点进去 3.点击新建,选择自定义,填入要替换的文件…...

C# Web控件与数据感应之 填充 HtmlTable

C# Web控件与数据感应之 填充 HtmlTable 在C#中,特别是在ASP.NET Web Forms应用中,你可能会遇到需要将数据动态填充到HTML表格(HtmlTable)中的场景。这通常涉及到遍历数据源(如数据库查询结果、集合等)&am…...

HAL库源码移植与使用之SPI驱动VS1053音频解码

你可以理解为带着dac adc芯片功能的集成芯片,声音的高低音形成由频率决定,大小声由波峰决定,所以采集时记录时间和电压值就可以确定高低音色和大小声,形成声音波形,再把波形用dac输出给喇叭,让喇叭在对应时…...

RK3568 Linux 平台开发系列讲解(内核入门篇):从内核的角度看外设芯片的驱动

在嵌入式 Linux 开发中,外设芯片的驱动是实现操作系统与硬件之间交互的关键环节。对于 RK3568 这样的处理器平台,理解如何从内核的角度构建和管理外设芯片的驱动程序至关重要。 1. 外设驱动的基础概念 外设驱动(Device Driver)是操作系统与硬件设备之间的桥梁。它负责控…...

初识C++ · AVL树(2)

目录 前言: 1 左右旋 2 右左旋 3 部分细节补充 3.1 单旋和插入 3.2 部分小函数 前言: AVL树作为一种结构,理解树的本身是不大难的,难的在于,树旋转之后的连接问题,写AVL树的代码大部分都是在旋转部分…...

LLM:归一化 总结

一、Batch Normalization 原理 Batch Normalization 是一种用于加速神经网络训练并提高稳定性的技术。它通过在每一层网络的激活值上进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程,并且减轻了对参数初始化的依赖。 公式 …...

蓝桥杯 2024 年第十五届省赛真题 —— 最大异或结点

目录 1. 最大异或结点1. 问题描述2. 输入格式3. 输出格式4. 样例输入5. 样例输出6. 样例说明7. 评测用例规模与约定 2. 解题思路1. 解题思路2. AC_Code 1. 最大异或结点 1. 问题描述 小蓝有一棵树,树中包含 N N N 个结点,编号为 0 , 1 , 2 , ⋯ , N − 1 0,1,2,…...

AV1技术学习:Loop Restoration Filter

环路恢复滤波器(restoration filter)适用于64 64、128 128 或 256 256 像素块单元,称为 loop restoration units (LRUs)。每个单元可以独立选择是否跳过滤波、使用维纳滤波器(Wiener filter)或使用自导滤波器&#…...

如何使用python实现自动化办公?干货满满!

Python作为一种简单而强大的编程语言,不仅在数据科学和软件开发领域广受欢迎,还在办公自动化方面发挥了巨大作用。通过Python,我们可以编写脚本来自动执行各种重复性任务,从而提高工作效率并减少错误。在本文中,我们将…...

QT Creator下载安装详细教程(保姆级教程)

qt下载安装 1.下载网址 通过清华大学开源软件镜像站进行下载:链接: https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/online_installers/ 这里我选的是4.4版本的,也可以选择4.7版本,问题不大。 根据电脑系统选择下载linux…...

无人机公司销售需要什么资质

国家民航局于2024年1月1日实施了《无人驾驶航空器飞行管理暂行条例》,根据这个管理条例里面的 第十一条 使用除微型以外的民用无人驾驶航空器从事飞行活动的单位应当具备下列条件,并向国务院民用航空主管部门或者地区民用航空管理机构申请取得民用无人驾…...

代码自动化重构工具OpenRewrite介绍

OpenRewrite 是一个用于大规模自动化代码重构的开源框架,它极大地提升了开发人员的研发效率,通过自动化地进行代码重构和转换,帮助开发人员消除代码库中的技术债务。 通过 LST、访问器和配方的结合,OpenRewrite 能够实现准确的代…...

Win11安装Docker

下载Docker Desktop for Windows 下载 下载连接:Install Docker Desktop on Windows | Docker Docs 地址在国外,需要科学上网。也可使用我提供的,百度网盘:https://pan.baidu.com/s/1232TTkkzLsoZyFjC3bmgiQ 安装 下载完成之后…...

Windows电脑如何启动RTSP服务实现本地摄像头数据共享

技术背景 提起Windows共享本地摄像头,好多人想到的是通过ffmepg或vlc串流到服务器,实际上,用轻量级RTSP服务更简单,本文就介绍下,如何用大牛直播SDK的Windows轻量级RTSP服务,采集摄像头,生成本…...

探索 Spring WebFlux:构建响应式 Web 应用

探索 Spring WebFlux:构建响应式 Web 应用 随着互联网的发展,传统的同步编程模型已经难以应对高并发和高吞吐量的需求。为了解决这些问题,响应式编程逐渐成为主流。Spring WebFlux 是 Spring 5 引入的一个响应式 Web 框架,它基于…...

C# 植物大战僵尸

Winform 版本开发 高效率、流畅植物大战僵尸 git地址:冯腾飞/植物大战僵尸...

css 作业 2

文章目录 前言第四题第五题第六题第七题第八题第九题第十题(子标签) 前言 昨天写了前面三次作业,今天把剩下的七个作业写完 第四题 http://127.0.0.1:5500/index1.html,就用这个网址查看代码在网页的展示效果 代码评测过不了&…...

FigmaCN:消除语言壁垒的中文界面本地化解决方案

FigmaCN:消除语言壁垒的中文界面本地化解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN FigmaCN是一款专为中文设计师打造的浏览器插件,通过3800条人工校…...

nlp_structbert_siamese-uninlu_chinese-base镜像免配置优势:自动检测CUDA/cuDNN版本并提示降级建议

nlp_structbert_siamese-uninlu_chinese-base镜像免配置优势:自动检测CUDA/cuDNN版本并提示降级建议 你是不是也遇到过这种头疼事?好不容易找到一个好用的AI模型,兴致勃勃地准备部署,结果一运行就报错——CUDA版本不匹配、cuDNN找…...

实战数据库设计:基于快马平台构建高并发在线考试系统核心数据层

今天想和大家分享一个实战项目——在线考试系统的数据库设计。这个项目是我在InsCode(快马)平台上完成的,整个过程让我深刻体会到合理的数据结构设计对系统性能的重要性。 核心表结构设计 在线考试系统的核心在于数据组织,我设计了5个主要表&#xff1…...

Mastering nohup: Redirecting Output for Persistent Server Deployments

1. 为什么你需要掌握nohup命令 想象一下这个场景:你在远程服务器上启动了一个重要的Java服务,花了半小时调试终于跑起来了。这时候老板喊你开会,你顺手关闭了终端窗口。等会议结束回来一看——服务居然挂了!所有努力付诸东流&…...

Evo FPGA伺服控制库:基于xlr8_servo硬件IP的兼容封装

1. 项目概述evo_servo是一个专为 Evo 系列 FPGA 开发板设计的伺服电机控制封装库,其核心定位是为 Evo 平台提供对 XLR8 平台xlr8_servo模块的兼容性访问能力。该库并非从零构建的全新驱动,而是对已有硬件加速逻辑的功能性桥接层(wrapper&…...

HEX与BIN文件在单片机开发中的关键差异

单片机下载文件:HEX文件和BIN文件的区别解析1. 文件格式概述在嵌入式系统开发中,HEX和BIN是两种最常见的单片机程序下载文件格式。这两种格式在结构和使用方式上存在显著差异,直接影响着程序烧录流程和开发效率。1.1 HEX文件特性HEX文件&…...

STM32 SRAM与FLASH调试配置实践

在SRAM与FLASH中调试STM32代码的工程实践1. 调试环境选择背景STM32微控制器的内部FLASH擦写次数约为1万次,频繁的调试过程会加速FLASH寿命的消耗。同时,SRAM存储器的写入速度显著快于内部FLASH,这使得在SRAM中进行程序调试具有以下优势&#…...

提示内容用户体验优化框架:提示工程架构师的实战指南

提示内容用户体验优化框架:提示工程架构师的实战指南 一、引言:为什么“提示内容”是AI产品的“用户体验咽喉”? 1. 一个真实的痛点:用户与AI的“对话困境” 上周,我在某知名AI写作平台上看到一条用户评论:…...

Powershell创建ISO文件全攻略:从基础命令到高级参数详解

PowerShell创建ISO文件全攻略:从基础命令到高级参数详解 在数据迁移、软件分发或系统部署场景中,ISO映像文件因其通用性和完整性验证机制成为首选载体。传统方式依赖第三方工具的时代已经过去,Windows PowerShell作为系统级脚本环境&#xff…...

springboot-vue基于web框架的高校教材征订管理系统的设计与实现

目录技术选型与架构设计核心功能模块划分数据库设计要点开发阶段规划关键技术实现方案部署与运维方案项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 后端技术栈 采用Spring Boot作为核心框架,整…...