我能够检测到所有IP地址,但我想检测哪些IPv6地址已被弃用。我怎么能用C代码呢?可能在/proc/net/if_inet6
中有这些信息,但我不确定此文件中的第五列是否表明了这一点。这是我的/proc/net/if_inet6
文件。
fdc2714277b700009422b252a33ddc6a 02 40 00 21 eth0
fdc2714277b70000021a4dfffedd455f 02 40 00 00 eth0
00000000000000000000000000000001 01 80 10 80 lo
fe80000000000000021a4dfffedd455f 02 40 20 80 eth0
fdc2714277b70000ec3e4b537af7f419 02 40 00 01 eth0
在第五栏中输入 21 的是我弃用的IPv6地址,第五栏中的 01 条目是我当前的临时IPv6地址。
答案 0 :(得分:0)
你是对的。该列是包含标志的十六进制值。标志在rtnetlink.h
:
#define IFA_F_SECONDARY 0x01
#define IFA_F_DEPRECATED 0x20
#define IFA_F_TENTATIVE 0x40
#define IFA_F_PERMANENT 0x80
因此,带有标志值21的地址是不推荐使用的辅助地址。