对于C中的IPv6地址,如何将网络字节顺序转换为主机字节顺序,反之亦然?

时间:2018-07-12 10:38:02

标签: networking routing ipv6 htonl

谁能解释 ipv6地址的网络字节顺序和主机字节顺序的概念。

1 个答案:

答案 0 :(得分:1)

在IPv6中,实际上没有区别。

以下假设在Linux和Windows上为C:

在IPv4中,地址存储为32位无符号整数,因此受系统字节顺序的影响。因此,必须先将其转换为网络字节顺序,然后才能通过网络发送。

但是IPv6地址存储在sockaddr_in6结构中的字段in6_addr中,该字段也是包含16个无符号8位字符的数组的结构。

因此,由于IPv6地址始终有效地处于网络字节顺序,因此在处理IPv6地址(例如IPv6地址)时无需进行任何字节顺序转换。从getaddrinfo()返回的内容。您可以简单地将in6_addr结构视为不透明数据。