ipv6相关转换

 1 #include <stdio.h>
2 #include <netinet/in.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5 #include <sys/socket.h>
6 #include <string.h>
7 #include <arpa/inet.h>
8
9 int main()
10 {
11 struct sockaddr_in6 addr;
12
13 memset(&addr, 0, sizeof addr);
14 addr.sin6_port = 0x80;
15 addr.sin6_family = AF_INET6;
16 inet_pton(AF_INET6, "::10.8.1.66", &addr.sin6_addr);
17
18 struct sockaddr_in6 dstaddr;
19 memset(&dstaddr, 0,sizeof dstaddr);
20 memcpy(&dstaddr.sin6_addr, &addr.sin6_addr, 128);
21
22 char ip6[INET6_ADDRSTRLEN] = {0};
23 const char *ret = NULL;
24 ret = inet_ntop(AF_INET6, &dstaddr.sin6_addr,ip6,INET6_ADDRSTRLEN);
25 if (ret == NULL)
26 {
27 perror("trans error");
28 exit(1);
29 }
30 printf("ipaddr: %s\n", ip6);
31 printf("OK.\n");
32
33 return 0;
34 }



原文地址:https://www.cnblogs.com/tiantao/p/2398258.html