如何更改 IPV6 地址的字节顺序(从网络到主机,反之亦然)?

2024-03-30

我知道ntoh{s,l} and hton{s,l},适用于 2 和 4 字节的整数。 现在,我面临着转换 16 个字节长的 IPv6 地址的问题。

是否有用于此目的的现成函数?

TIA, Jir


我不确定ntoh and hton与 IPv6 相关。您没有本机 128 位类型,是吗?

根据http://www.mail-archive.com/[电子邮件受保护]/msg00195.html http://www.mail-archive.com/users@ipv6.org/msg00195.html:

IPv6 地址预计为 以网络字节顺序表示 每当它们是二进制形式时(在 电线,在主机上,在路由器中, ETC)。除其他地方外,请参阅 RFC 2553,第 3.2 节。

From RFC 2553 http://www.ietf.org/rfc/rfc2553.txt:

3.2 IPv6地址结构

新的 in6_addr 结构保存单个 IPv6 地址,并通过包含以下内容来定义:

struct in6_addr {
    uint8_t  s6_addr[16];      /* IPv6 address */
};

该数据结构包含一个由 16 个 8 位元素组成的数组,组成一个 128 位 IPv6 地址。 IPv6 地址以网络字节顺序存储。

上面的结构 in6_addr 通常使用带有额外字段的嵌入式联合来实现,这些字段以类似于“struct in_addr”的 BSD 实现的方式强制所需的对齐级别。为了简单起见,此处省略了这些额外的实现细节。

示例如下:

struct in6_addr {
    union {
        uint8_t  _S6_u8[16];
        uint32_t _S6_u32[4];
        uint64_t _S6_u64[2];
    } _S6_un;
};
#define s6_addr _S6_un._S6_u8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 IPV6 地址的字节顺序(从网络到主机,反之亦然)? 的相关文章

  • 如何使用 .fetch 函数使 API 调用在 React-Native 中兼容 IPV6?

    我开发了一个用 React Native 编写的应用程序 适用于 IOS 它在 IPV4 网络中运行良好 然而 最近苹果公司发来一条消息 称我的应用程序在 IPV6 网络中测试时无法运行 他们告诉我 我还必须使其与仅限 IPV6 的网络兼容
  • BinaryWriter 字节序问题

    我正在使用 BinaryWriter 类将二进制文件写入磁盘 当我调用 Write 方法并传递无符号短值时 它会以小端格式写入 例如 bw Write 0xA000 将二进制文件中的值写入为 0x00 0xA0 有没有办法让 BInaryW
  • 整数如何存储在内存中?

    当我阅读一篇有关大 小端的文章时 我很困惑 代码如下 include
  • C++ 中的内联 ntohs() / ntohl() / Boost ASIO

    嗨 我正在使用 C Boost ASIO 我必须内联ntohl 出于性能原因 每个数据包包含 256 个 int32 因此需要大量调用ntohl 有人这样做过吗 以下是 VC10 的编译后的程序集输出 所有优化均已打开 int32 t d
  • 如何确定处理器运行的字节序模式?

    如何仅使用汇编语言确定 ARM 处理器运行的字节序模式 我可以很容易地看到 Thumb ARM 状态读取 CPSR 的第 5 位 但我不知道 CPSR 或其他地方是否有对应的位用于字节序 silly example trying to ex
  • 什么决定了 System.Net.IPAddress.ToString() 的 IPv6 地址格式?

    内置 Net 方法 System Net IPAddress ToString 对于 IPv6 地址的行为不一致 给定字节数组0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 在某些环境下 aaaa aaaa aaaa
  • 添加 IPV6_V6ONLY 标志的动机是什么?

    在 IPv6 网络中 IPV6 V6ONLY 标志用于确保套接字仅使用 IPv6 特别是 IPv4 到 IPv6 的映射不会用于该套接字 在许多操作系统上 默认情况下未设置 IPV6 V6ONLY 但在某些操作系统 例如 Windows 7
  • Spring Boot 应用程序在没有 -Djava.net.preferIPv4Stack=true 和 -Djava.net.preferIPv4Addresses 参数的情况下侦听 IPv6

    我关于 Spring boot jar 的问题 在生产机器上运行 jar 时 java jar xyz jar 它没有响应我的请求 因为它正在监听 ipv6 但是当我运行应用程序时java jar xyz jar Djava net pre
  • 将网络字节顺序(大端)转换为小端

    我发现以下功能MSDN http msdn microsoft com en us library windows desktop ms740069 28v vs 85 29 aspx它转换一个unsigned long从网络字节到unsi
  • C++ 中的 IPv6 连接测试

    是否有任何 C 函数可以测试运行我的程序的计算机是否支持 IPv6 连接 我需要知道类似此页面的结果http test ipv6 com http test ipv6 com 但是在 C 中 EDIT 我试图使用getifaddrs 但返回
  • iPhone 平台:字节顺序(检测和交换)

    我正在 iPhone 上进行一些字节序敏感的文件操作 该环境中是否有标准宏或 defines 指示本机字节序并在必要时提供交换 我知道我可以提前检查并为这个特定的架构做正确的事情 但想知道是否有更干净的方法来做正确的事情 文件格式是小端 如
  • 字节顺序、“最高有效”和“最低有效”

    我在网上阅读了描述大端和小端的描述 然而 它们似乎基本上都以相同的方式读取 我仍然对 最多 和 最少 有效字节的实际实现感到困惑 据我了解 小端值首先评估 最低有效 值 而在大端值下 首先评估 最高有效 字节 但是 我不清楚 最 和 最不
  • 在 Clang 中以可移植且最佳的方式将 uint64_t 转换为字节数组

    如果你想转换uint64 t to a uint8 t 8 小端 在小端架构上你可以做一个丑陋的reinterpret cast lt gt or memcpy e g void from memcpy const std uint64 t
  • Little Endian 并推入 nasm

    我不明白为什么代码的输出是Ole 小字节序不应该影响push命令 global start section data x dd 3 section text start mov eax 4 mov ebx 1 mov dword x 0x0
  • 匹配有效 IPv6 地址的正则表达式

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我在编写匹配有效 IPv6 地址的正则表达式时遇到问题 包括压缩形式的地址 使用 或从每
  • 使用 IPv6 进行地理定位?

    我正在开发一个 IP 地理定位库 它使用 IPv4 地址的前三个八位字节来确定用户的国家 地区 城市 纬度 经度等 效果非常好 但它不处理 IPv6 地址 我希望它能够处理 有没有办法转换 IPv6 地址以获得 IPv4 地址的前三个八位字
  • 大端和小端表示

    如果我写以下内容 section data align 4 X db 1 Y dw 5 Z db 0x11 section text add dword X 0xAA000101 我试图理解大端和小端表示之间的差异 但我不明白每个表示的每个
  • 使用 boost asio 枚举我的卡的 ipv4 和 ipv6 地址

    我正在尝试枚举我的电脑的所有网卡 我有 2 张卡 的 ipv4 和 ipv6 地址 我正在使用以下代码来执行此操作 using boost asio ip tcp boost asio io service io service tcp r
  • 正则表达式 IPv6 验证和可选的方括号?

    大家好 这里的正则表达式新手 我正在尝试编写一个验证 IPv6 地址的正则表达式 我还没有添加端口部分 我想先让地址部分工作 这是我到目前为止所拥有的 0 9A Fa f 这使得左括号和右括号是可选的 但正如您所看到的 它们是独立可选的 有
  • 提升 asio 和 endian

    我不知道 boost asio 是否处理字节序 Asio 确实会转换类似的东西port进入网络秩序 转换函数不作为官方接口的一部分公开 而是隐藏在detail名称空间代替 例如boost asio detail socket ops hos

随机推荐