获取IPv6配置状态

时间:2012-04-26 11:38:37

标签: linux networking ipv6

我正在编写一些代码来返回我的IPv6配置状态。是否有一个Linux系统脚本(或C / C ++函数),我可以调用它来返回我的IPv6状态。例如,Auto,Manual或DHCPv6之类的东西可能是3种状态。必须有一些标志来确定这一点。我一直在看

ip -f inet6 addr show eth0 scope global | grep inet6

虽然范围表示动态,但这是可能因更改ipv6 conf而改变的标志。它输出

inet6 <ipv6 addr> scope global deprecated dynamic

感谢。

1 个答案:

答案 0 :(得分:1)

如果您的目标是确定界面是手动配置,使用自动配置还是使用DHCP ......您将无法从界面获取该信息。通常,接口不知道如何配置;该信息在您系统的网络配置中进行编码。

例如,使用DHCP的系统从DHCP服务器获取租约,然后调用ifconfigip来配置接口。这与手动配置界面无法区分

在RedHat-ish系统下,您可以查看/etc/sysconfig/network-scripts以获取该信息。 ifcfg-*文件包含一系列定义配置的shell变量。例如,我系统上的/etc/sysconfig/network-scripts/ifcfg-em1包含:

IPV6INIT=yes
IPV6_AUTOCONF=yes

在Debian-ish系统下,您可以在/etc/network/interfaces中找到类似的信息。