首先问个问题:IPV6是否有掩码?
答: 有
GOOGLE上查了一圈没有找到好的方法,字节摸索了一套可行的方法,同分享:
下述程序打印处掩码长度,由此判断前缀长度,good!
#include <sys/socket.h>
#include <netdb.h>
#include <ifaddrs.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <net/if.h>
#include <netinet/in.h>
#include <sys/types.h>
int
main(int argc, char *argv[])
{
struct ifaddrs *ifaddr, *ifa;
int family, s;
char host[NI_MAXHOST];
char host_netmask[NI_MAXHOST];
struct sockaddr_in6 *pip6 = NULL;
int i;
if (getifaddrs(&ifaddr) == -1) {
perror("getifaddrs");
exit(EXIT_FAILURE);
}
/* Walk thr