2012-04-26 110 views
0

我正在編寫一些代碼來返回我的IPv6配置狀態。是否有可以調用的linux系統腳本(或C/C++函數)來返回我的IPv6的狀態。例如,像Auto,Manual或DHCPv6這樣的東西可能有3種可能的狀態。必須有一些標誌來確定這一點。我一直在尋找獲取IPv6配置狀態

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

儘管範圍指示動態,這是可以更改以響應更改ipv6 conf的標誌。它輸出

inet6 <ipv6 addr> scope global deprecated dynamic 

謝謝。

回答

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十歲上下的系統,你可以在/etc/network/interfaces找到類似的信息。

+0

'/ etc/sysconfig/network'在我的系統上無處可見。 – 2015-12-18 22:05:48

+0

也許我的意思是/ etc/network/interfaces?這是三年前。在任何情況下,Ubuntu現在都有一些關於IPv6的良好文檔,可能更有用:https://wiki.ubuntu.com/IPv6 – larsks 2015-12-19 02:26:38