2009-10-08 38 views
1

我正在使用運行BusyBox的嵌入式設備。
系統通過使用ip命令獲取其地址。 我想從我的C程序中弄清楚ip是靜態還是從DHCP服務器接收到設備 。我怎麼做?檢測IP是靜態的還是從busybox上的DHCP獲取

+0

我想你應該編輯你的問題,並詳細說明如何獲得IP地址。我假設你運行BusyBox的DHCP客戶端,但這似乎是錯誤的。 – unwind 2009-10-08 13:20:29

回答

0

如果你控制環境,我建議設置一個env變量,或者在設置IP地址的時候創建一個你可以統計的標誌文件。

1

dumpleases命令應該顯示當前租約。我想如果你能確定你有一個IP地址,但沒有租約,那麼這個地址是靜態的。

+0

設備使用ip命令獲取其地址,而不使用udhcp,因此dumpleases不起作用 – amitp 2009-10-08 11:52:29

0

看看this question並檢查IFF_DYNAMIC標誌 - 可以在接口上的DHCP處於活動狀態時設置。

+0

IFF_DYNAMIC表示在Solaris中具有更改地址 – amitp 2009-10-08 12:15:04

+0

的撥號設備存在IFF_DHCPRUNNING標誌。有相當於Linux嗎? – amitp 2009-10-08 12:33:02

4

我不知道您的用戶如何與您的嵌入式系統進行交互。但在我們的(相同的組件)上,我們有CLI,將每個接口的SHM結構(db)中選擇的DHCP/STATIC類型設置註冊到該接口。

本質上,您需要跟蹤如何設置接口的IP。

相關問題