基于VS2017
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <WS2tcpip.h>
#pragma comment(lib,"Ws2_32.lib")
int main()
{
std::string ipv6str("1:2:3:0:5:6:7:8");
sockaddr_in6 addr;
//in6_addr addr;
memset(&addr, 0, sizeof(addr));
int iRet = inet_pton(AF_INET6, ipv6str.c_str(), &addr.sin6_addr);
unsigned int ipv6Vec[4];
memset(ipv6Vec, 0, sizeof(ipv6Vec));
memcpy_s(ipv6Vec, sizeof(ipv6Vec), &addr.sin6_addr, sizeof(addr.sin6_addr));
//std::cout << ipv6Vec[0] << ", " << ipv6Vec[1] << ", " << ipv6Vec[2] << ", " << ipv6Vec[3] << std::endl;
char str[46];
memset(str, 0, 46);
const char* ptr = inet_ntop(AF_INET6, ipv6Vec, str, sizeof(str));
return 0;
}