当我们在Linux系统中需要查看接口和地址关系时有两个文件可以查看
/proc/net/if_inet6 //接口和单播地址
/proc/net/igmp6 //接口和组播地址
最开始接触到IPv6的开源代码时看到代码中有去读取/proc/net/if_inet6文件,但是看完之后一脸懵逼,自己去网上搜索后发现关于这个文件内容的介绍是少之又少(实际上关于IPv6的资料网上是少之又少,英文的还有点中文的几乎没得~),所以就想着结合代码和自己的理解来写一个,希望能给刚接触IPv6的人一些帮助;
/proc/net/if_inet6
文件内容如上图具体格式是:
ipv6addr ifindex prefixlen scope flag devname
ipv6addr: 就是ipv6地址这个没什么好解释的。
ifindex: 就是接口ID,这个是每一个接口都不一样的,文件中显示的是十六进制数字,实际上这个文件中的数字除了都是十六进制的
prefixlen: 前缀长度,类似于IPv4的掩码,ipv6基础知识不做介绍
scope: 这个得好好讲讲了,scope这个单词就是范围的意思,那么在这里的意思肯定是这个地址的适用范围了。那么0x10 0x20 0x00分别又是什么意思呢?