#include<stdio.h>
#include <WS2tcpip.h>
#pragma comment(lib,"Ws2_32.lib")
struct sockaddr_1in6{
int u6_usaddr[16];
};
struct stVppString {
char *pcData;
int ulLen;
};
int main()
{
sockaddr_1in6 sa;
stVppString stAddrTmp;
char str[128] = "6001:1:0:159:1:170:12:0";
(&stAddrTmp)->pcData = str;
int i = inet_pton(AF_INET6, (&stAddrTmp)->pcData, (void *)&sa.u6_usaddr);
if (i > 0)
{
/* printf("0x%x %x %x %x x%x%x%x%x\n",
(sa.u6_usaddr[0]),
(sa.u6_usaddr[1]),
(sa.u6_usaddr[2]),
(sa.u6_usaddr[3]),
htonl(sa.u6_usaddr[0]),
htonl(sa.u6_usaddr[1]),
htonl(sa.u6_usaddr[2]),
htonl(sa.u6_usaddr[3])); //#1*/
inet_ntop(AF_INET6, &sa.u6_usaddr, str, INET6_ADDRSTRLEN);
printf("%s\n", str); // prints source ip //#2
}
return 0;
}