networking - 如何将网络字节顺序转换为主机字节顺序,反之亦然,用于 C 中的 IPv6 地址?
问题描述
谁能解释ipv6 地址的网络字节顺序和主机字节顺序的概念。
解决方案
在 IPv6 中,实际上没有区别。
以下假设在 Linux 和 Windows 上使用 C:
在 IPv4 中,地址存储为无符号 32 位整数,因此受系统字节序的影响。因此,它必须先转换为网络字节顺序,然后才能在线发送。
但是 IPv6 地址存储在一个sockaddr_in6
结构中,在一个字段in6_addr
中,该字段也是一个包含 16 个无符号 8 位字符数组的结构。
因此,由于 IPv6 地址始终有效地按网络字节顺序排列,因此在处理 IPv6 地址时无需进行任何字节顺序转换,例如从getaddrinfo()
. 您可以简单地将in6_addr
结构视为不透明数据。
推荐阅读
- plugins - 从插件创建文件/文件夹时如何处理安全权限
- scala - Apache Spark SQL 查询和 DataFrame 作为参考数据
- reactjs - 使用带有连接组件的酶试图模拟点击时出现问题
- python - 如何通过迭代成批的数组来创建多维结果
- python - 在使用 .namespace_map 时,在输出 xml 中,它在使用该前缀的标记末尾添加 url 作为属性
- html - 当元素可见时,容器会丢失上边距
- java - 无法安装断点
$$$view59 由于缺少行号属性。原因:缺少行号信息 - jquery - 无法使用 jQuery 可靠地隐藏和显示元素
- elasticsearch - 与 istio 代理的弹性搜索彼此断开连接
- python - Flask Web 应用程序:Google 饼图未显示在 html 输出中