#include <stdio.h>
#define uchar unsigned char
#define ushort unsigned short
#define ulong unsigned long
#define u8_16 0
#define u16_8 1
#define u32_4 2
struct IPv6_addr
{
union ipv6_union
{
uchar addr8[16];
ushort addr16[8];
ulong addr32[4];
}ip_v6;
};
typedef struct
{
struct IPv6_addr ulQueryIpV6;
}query_t ;
void showIPv6_Addr(int type, struct IPv6_addr Ip)
{
printf("\n---------IPV6 地址 ----------\n");
int i;
switch(type)
{
case u8_16:
for(i = 0; i < 16; i++)
{
if(i!=15)
printf("%02x:",Ip.ip_v6.addr8[i]);
else
printf("%02x",Ip.ip_v6.addr8[i]);
}
break;
case u16_8:
for(i = 0; i < 8; i++)
{
if(i!=7)
printf("%04x:",Ip.ip_v6.addr16[i]);
else
printf("%04x",Ip.ip_v6.addr16[i]);
}
break;
case u32_4:
for(i = 0; i < 4; i++)
{
if(i!=3)
printf("%08x:",Ip.ip_v6.addr32[i]);
else
printf("%08x",Ip.ip_v6.addr32[i]);
}
break;
default:
break;
}
}
int main () {
struct IPv6_addr arr[3] = {0};
return 0;
}