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

java解析网络大端、小端解析方法

在这里插入图片描述

文章目录

  • 一、背景介绍
  • 二、说明
    • 核心概念:什么是字节序(Endianness)?
    • 大端字节序 (Big-Endian)
    • 小端字节序 (Little-Endian)
  • 三、不同解析方式介绍

一、背景介绍

中转台通过SNMP协议V1\V2上报中转台IP,然后程序解析入库,后来发现解析网络分大端、小端的不同解析方法。
当时数据库存多个字段:主节点IP、从节点IP、IP地址,通过看红框的部分发现就是正序和反序的区别,实际是相同的IP地址,只不过大端小端解析不同,最后结果也不同。因此记录下!
在这里插入图片描述

二、说明

核心概念:什么是字节序(Endianness)?

字节序指的是多字节数据在内存中或网络传输时,各个字节的存储顺序。

对于一个像 0x12345678 这样的32位整数(十六进制表示),它由4个字节组成:0x12, 0x34, 0x56, 0x78。
问题是:当我们把它存入内存(或通过网络发送)时,哪个字节在先?哪个字节在后?

这就产生了两种不同的规则:

大端字节序 (Big-Endian)

在这里插入图片描述

小端字节序 (Little-Endian)

在这里插入图片描述

三、不同解析方式介绍

大端解析

public String getBigEndianMasterIPAddress() {Object o = getItemValue(OID_REPEATER_MASTER_IP_ADDRESS);try {if (o != null) {int nIp = (Integer) o;byte[] ip = ByteBuffer.allocate(4).putInt(nIp).array();InetAddress ipaddr = InetAddress.getByAddress(ip);return ipaddr.getHostAddress();}} catch (UnknownHostException e) {logger.error("parse ip address error:", e);}return "";
}

小端解析

public String getMasterIPAddress() {Object o = getItemValue(OID_REPEATER_MASTER_IP_ADDRESS);try {if (o != null) {int nIp = (Integer) o;byte[] ip = new byte[]{(byte) (nIp & 0xFF),(byte) (nIp >> 8 & 0xFF),(byte) (nIp >> 16 & 0xFF),(byte) (nIp >> 24 & 0xFF)};InetAddress ipaddr = InetAddress.getByAddress(ip);return ipaddr.getHostAddress();}} catch (UnknownHostException e) {logger.error("parse ip address error:", e);}return "";
}
http://www.xdnf.cn/news/1462447.html

相关文章:

  • 信息安全基础知识
  • 云原生部署_Docker入门
  • 将 Android 设备的所有系统日志(包括内核日志、系统服务日志等)完整拷贝到 Windows 本地
  • android View详解—动画
  • Kali搭建sqli-labs靶场
  • modbus_tcp和modbus_rtu对比移植AT-socket,modbus_tcp杂记
  • 《sklearn机器学习——聚类性能指数》同质性,完整性和 V-measure
  • 从 Prompt 到 Context:LLM OS 时代的核心工程范式演进
  • [特殊字符] AI时代依然不可或缺:精通后端开发的10个GitHub宝藏仓库
  • Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持
  • 【Arxiv 2025 预发行论文】重磅突破!STAR-DSSA 模块横空出世:显著性+拓扑双重加持,小目标、大场景统统拿下!
  • K8S的Pod为什么可以解析访问集群之外的域名地址
  • LeetCode刷题-top100( 矩阵置零)
  • android 四大组件—BroadcastReceiver
  • 《深入理解双向链表:增删改查及销毁操作》
  • 贪吃蛇鱼小游戏抖音快手微信小程序看广告流量主开源
  • 架构性能优化三板斧:从10秒响应到毫秒级的演进之路
  • VSCode+MobaXterm+X11可视化界面本地显示
  • pydantic定义llm response数据模型
  • A股大盘数据-20250905 分析
  • HPL2.3安装
  • 期权卖方的收益和损失如何计算?
  • K8S删除命名空间卡住一直Terminating状态
  • 【小白笔记】命令不对系统:无法将‘head’项识别为 cmdlet、函数、脚本文件或可运行程序的名称
  • 【GEOS-Chem 输入数据】使用 AWS CLI 访问 GEOS-Chem 数据
  • LangChain实战(十六):构建基于SQL数据库的数据分析Agent
  • 深度学习——残差神经网路
  • 鸿蒙NEXT自定义能力详解:从基础使用到高级技巧
  • IDE mac M芯片安装报错:如何解决“InsCode.app 已损坏”,无法打开
  • 从零开始:用uv构建并发布一个Python CLI应用,集成CI/CD自动化发布与Docker容器化部署