我需要将IPv6字符串转换为C中的unsigned char数组,例如: IPv6字符串" fe80:0000:0000:0000:020f:bbff:feb8:f89e",unsigned char数组中的预期结果是:
exampleIPv6Addr[16] ={0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x0f, 0xbb, 0xff, 0xfe, 0xb8, 0xf8, 0x9e};
是否有任何lib可以使用并意识到这一点?
答案 0 :(得分:6)
inet_pton()
通常用于将IPv(4/6)-adresses的文本表示转换为二进制文件:
char *ipv6str = "fe80:0000:0000:0000:020f:bbff:feb8:f89e";
struct in6_addr ipv6data;
inet_pton(AF_INET6, ipv6str, &ipv6data);
现在您可以将其作为char数组访问:
ipv6data.s6_addr[0-15];