如何在C语言中扩展IPv6地址
我想扩展我的IPv6地址。有没有办法将该地址扩展为完整地址? 如果我得到了abcd:12::7,那么我需要将其展开为abcd:0012:0000:0000:0000:0000:0007 主要用于增加地址如何在C语言中扩展IPv6地址,c,C,我想扩展我的IPv6地址。有没有办法将该地址扩展为完整地址? 如果我得到了abcd:12::7,那么我需要将其展开为abcd:0012:0000:0000:0000:0000:0007 主要用于增加地址 我已经编写了一些代码,但显示了一个错误。错误是“致命错误C1083:无法打开包含文件:'arpa/inet.h':没有这样的文件或目录”。我使用的是visual studio 2005。对于任何类型的IPv6地址操作,都需要将其存储为4个未签名整数(每个4字节)的数组。大多数堆栈都是这样存储的,
我已经编写了一些代码,但显示了一个错误。错误是“致命错误C1083:无法打开包含文件:'arpa/inet.h':没有这样的文件或目录”。我使用的是visual studio 2005。对于任何类型的IPv6地址操作,都需要将其存储为4个未签名整数(每个4字节)的数组。大多数堆栈都是这样存储的,这是来自linux内核:
struct in6_addr {
union {
__u8 u6_addr8[16];
__be16 u6_addr16[8];
__be32 u6_addr32[4];
} in6_u;
#define s6_addr in6_u.u6_addr8
#define s6_addr16 in6_u.u6_addr16
#define s6_addr32 in6_u.u6_addr32
};
您需要使用
inet\u pton()
将字符串转换为这种压缩格式,这些问题看起来好像订单在本网站上不起作用。尝试发布您尝试过的内容。我的代码是-#包括“stdafx.h”#包括“string.h”#包括“stdlib.h”#包括“conio.h”#包括“arpa/inet.h”int#tmain(int argc,char argv[]){struct in 6#addr{无符号char s6(addr[16]//IPv6地址};struct in 6(addr IPv6;char str struct[=“abcd:1234::ffff”;if(strcnt(str,:“”>1){if(inet_pton(AF_INET6,str,&ipv6.s6_addr))printf(“%s是%0llu(ipv6)\n”,str,ipv6.s6_addr);else printf(“Error..”)}getch();返回0;}