1..通过域名转换为点分十进制ipv6地址
addrinfo转换为sockaddr_in6
2.程序
#include <stdio.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
int main(int argc, char **argv)
{
if (argc != 2)
{
fprintf(stderr, "Usage: %s hostname\n",
argv[1]);
exit(1);
}
char ipstr2[128];
struct sockaddr_in6 *sockaddr_ipv6;
struct addrinfo *answer, hint, *curr;
char ipstr[16];
bzero(&hint, sizeof(hint));
hint.ai_family = AF_INET6;
hint.ai_socktype = SOCK_STREAM;
int ret = getaddrinfo(argv[1], NULL, &hint, &answer);
if (ret != 0)
{
fprintf(stderr,"getaddrinfo: &s\n",
gai_strerror(ret));
exit(1);
}
for (curr = answer; curr != NULL; curr = curr->ai_next)
{
sockaddr_ipv6 = reinterpret_cast<struct sockaddr_in6 *>( cu