首先问个问题: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 through linked list, maintaining head pointer so we
can free list later */
for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
if (ifa->ifa_addr == NULL)
continue;
family = ifa->ifa_addr->sa_family;
/* Display interface name and family (including symbolic
form of the latter for the common families) */
printf("%s  address family: %d%s\n",
ifa->ifa_name, family,
(family == AF_PACKET) ? " (AF_PACKET)" :
(family == AF_INET) ?   " (AF_INET)" :
(family == AF_INET6) ?  " (AF_INET6)" : "");
/* For an AF_INET* interface address, display the address */
if (family == AF_INET || family == AF_INET6) {
s = getnameinfo(ifa->ifa_addr,
(family == AF_INET) ? sizeof(struct sockaddr_in) :
sizeof(struct sockaddr_in6),
host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if (s != 0) {
printf("getnameinfo() failed: %s\n", gai_strerror(s));
exit(EXIT_FAILURE);
}
getnameinfo(ifa->ifa_netmask,
(family == AF_INET)? sizeof(struct sockaddr_in): sizeof(struct sockaddr_in6),
host_netmask, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if(AF_INET6==family)
{
pip6 = (struct sockaddr_in6 *)(ifa->ifa_netmask);
char *p = (char *)&(pip6->sin6_addr);
for(i=0;i<16;i++)
{
printf("%d ",*p);
p++;
}
}
printf("\taddress: <%s>\n", host);
printf("\tnetmaks: <%s>\n", host_netmask);
}
}
freeifaddrs(ifaddr);
exit(EXIT_SUCCESS);
}

如何获取当前配置的IPV6地址的前缀长度(掩码)相关推荐

  1. RH358管理DHCP和IP地址分配--配置分配IPv6地址

    RH358管理DHCP和IP地址分配–配置分配IPv6地址 本章节介绍配置DHCP分配IPv6地址,虽然还是有点鸡肋,但可以作为了解和学习用. 专栏地址:https://blog.csdn.net/q ...

  2. linux配置端口ipv6地址,linux配置ipv6地址命令

    linux配置ipv6地址命令 模块加载: /etc/module.conf中增加下列行: alias net-pf-10 ipv6 配置ipv6: /etc/sysconfig/network中增加 ...

  3. 获取接口所有IPV6地址和前缀的方法

    获取接口的IPV6地址和前缀一共有如下3种方法: 1. 通过ifconfig 2. 通过getifaddrs函数 3. 通过cat /proc/net/if_inet6 第一种和第三种都类似于读文件, ...

  4. linux下获取本机IPv6地址、前缀、网关

    原文:linux下获取本机IPv6地址.前缀.网关 获取本机IPv6信息命令:cat /proc/net/if_inet6 root@IT-PC-135:/home/user1/# cat /proc ...

  5. linux 配置静态IPv6地址

    1.配置静态IPv6地址 测试环境ipv6地址格式为fec0::10:224:X:X 服务器ipv6首选DNS服务器地址2409:8057:2000:6::8 备用DNS服务器地址2409:8057: ...

  6. Android配置临时ipv6地址

    Google公网DNS: 2001:4860:4860::6464 2001:4860:4860::64 ifconfig wlan0 inet6 add IPV6ADDR ifconfig wlan ...

  7. java 获取ipv6地址_获取本机的IPv6地址

    废话少说,直接上代码(java) 命令行输出的就是本机的IPv6地址 package app; import java.net.Inet6Address; import java.net.InetAd ...

  8. IPV6地址与前缀分配

    IPv6单播地址有以下六种类型: 1-Aggregate Global Unicast Address 2xxx:xxxxx/3 - 3FFF: :FFFF 2001::/16 IPV6因特网地址 2 ...

  9. 华为网络设备如何配置IPv6地址?它的格式是什么样的?如何缩写?又怎么分类?

    你知道IPv6地址格式是什么样的吗? 你知道IPv6地址如何缩写吗? 你知道IPv6地址怎么分类吗? 你知道华为网络设备如何配置IPv6地址吗? 接下来就给大家一一讲解,最后有惊喜哦~ 一.IPv6地 ...

最新文章

  1. string转换成CString
  2. sqlserver 查询语句执行历史
  3. IPv6扩展头部 (一) 扩展头部格式、类型与扩展选项
  4. python如何判断是否有弹出框_Selenium2+python自动化47-判断弹出框存在(alert_is_present)【转载】...
  5. Unity搭建简单的图片服务器
  6. 使用iToolab UnlockGo for Mac如何绕过屏幕时间密码
  7. 蓝桥杯和noip都考C语言么,为什么NOIP信息学奥赛C++普及组师资匮乏
  8. c语言编程齿轮模数选择,斜齿轮变位系数分配-C程序.doc
  9. Lizard 的第一篇博客
  10. overriding managed version警告
  11. SaltStack简介和安装
  12. mac Error: ENOENT: no such file or directory, stat ‘/.VolumeIcon.icns
  13. BERT |(3)BERT模型的使用--pytorch的代码解释
  14. L1-051 打折 (5 分)
  15. nginx 反向代理proxy_pass 后加斜杠和不加斜杆的区别
  16. 7-36 复数四则运算 (15 分)【简化版】
  17. 解读《“三板斧”-阿里巴巴管理之道》| 余歌
  18. 如何获得一个RAC Oracle数据库(从Github - oracle/docker-images) - 公有云版
  19. Scanf函数的介绍与使用及特殊形式(C语言)
  20. 2022-5-25 Leetcode 1005.K次取反后最大化的数组和

热门文章

  1. 【JokerのZYNQ7020】FLASH_TEST。
  2. 【JokerのZYNQ7020】UART。
  3. php的核心架构如下图,thinksns 核心架构及目录结构
  4. php怎么快速背,一个月背部快速蜕变?用上这7招效果绝对意想不到!
  5. 【Python基础】Python语法入门
  6. 前端工程师的摸鱼日常(12)
  7. 对于《肖申克的救赎》的个人感悟
  8. 2014年爆火的脸萌,真的消失了吗?
  9. 关于前端的一些学习记录(1)
  10. 地方门户网站的运营我们缺少的是什…