gpt4 book ai didi

c# - 如何将 ipv6 地址解析为 "octets"?

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:28 24 4
gpt4 key购买 nike

我希望能够将 ipv6 地址解析为八位字节。有没有类似下面的?

IPAddress.Parse(address).GetAddressBytes()[0];
IPAddress.Parse(address).GetAddressBytes()[1];

最佳答案

你是说这样?

IPAddress ipv6Addr = IPAddress.Parse("FE80::0202:B3FF:FE1E:8329") ;
byte[] octets = ipv6Addr.GetAddressBytes() ;

string text = String.Join( "," , octets.Select( x => string.Format("0x{0:X2}", x ) ) ) ;
Console.WriteLine(text);

上面的代码片段将其写入控制台:

0xFE,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0xB3,0xFF,0xFE,0x1E,0x83,0x29

如你所料。

编辑注意:您可能想阅读有关如何将 IPv6 地址表示为文本的信息:

IPv4 地址是一个 32 位整数(4 个八位位组),在文本中使用“点分四边形”表示法表示:x.x.x.x,其中每个“x”是八位位组的十进制值问题。

IPv6 地址为 128 位(长度为 16 个八位字节)。规范的文本表示形式为 8 个 16 位整数,以十六进制形式显示,用冒号分隔:操纵它以使表示更紧凑。

要从您的评论中获得您想要的内容,您需要获取您获得的 16 个八位字节的数组,并将每对八位字节转换为 ushort

不过您应该注意,文本表示是 IP 地址的网络字节顺序(big-endian,唯一正确的体系结构,恕我直言)。英特尔芯片是小端。你需要考虑到这一点。更多关于字节序和网络字节顺序的信息:http://en.wikipedia.org/wiki/Endianness

关于c# - 如何将 ipv6 地址解析为 "octets"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com