2012-02-28 58 views
3

我怎樣才能programmingly(C)知道,如果給定的接口有由DHCP提供靜態地址或一個?我可以看看/var/db/dhclient.leases.<interface_name>。任何更好/更清潔的方式?任何ioctl我可以使用?FreeBSD的:網絡接口地址:DHCP或靜態

+0

我不認爲網絡接口記錄他們的地址是如何設置的。 – 2012-02-28 22:02:38

回答

2

閱讀/etc/rc.conf。查找以ifconfig開頭的行,並查看其中哪些行包含文本DHCP

這不會趕上通過手動運行dhclient其被重新配置的接口。假設它的滲透性允許您的程序讀取它,解析租約文件在這方面會更好。

+0

謝謝羅納德。黑客入侵是我的方式..我猜。 – hari 2012-03-01 02:36:38

2

簡短的回答是否定的,沒有。 dhcp客戶端使用ifconfig使用的相同機制來設置接口地址等。沒有特別的標誌或其他指示來告訴你界面是動態配置的。

我會檢查/ etc中的配置文件/而不是租賃的,但肯定的,你將不得不做一些事情的hackish找出信息。

0

除了羅蘭和佩裏的精明的建議,我想補充一點:如果rc.conf中未配置爲使用DHCP,那並不意味着它不是通過命令行調用。

,如果你看到它的運行,有一個很好的機會,這也正是接口獲取其地址。

pgrep dhclient