2012-10-04 61 views
6

我在使用Linux的嵌入式設備上工作。我想首先使用DHCP客戶端,但是如果沒有來自DHCP服務器的應答,我想設置靜態默認IP。我想這不應該很複雜,但我還沒有找到嚴格的答案。設置靜態IP,如果沒有從DHCP獲取(腳本)

我想約2解決方案(不幸的是,我可以在幾天內對其進行測試):

  1. 我設置靜態IP使用ifconfig,然後我打電話使用udhcpc。如果udhcpc不會獲得新的IP,那麼舊的將停留。

  2. 我也可以先調用udhcpc,等一會兒,檢查IP是否被獲取。但是這對我來說並不好。我不想在啓動時添加任何等待例程。

BR 鮑爾泰克

我用udhcpc都 - 是這樣的:

udhcpc -n -f -i eth0 
if ifconfig | grep -A1 eth0 | grep inet 
    then 

回答

20

的dhclient應通過租賃聲明 支持回退看看在dhclient.conf手冊頁。

添加這樣的事情你dhclient.conf

timeout 10; 
lease { 
interface "eth0"; 
fixed-address 10.0.0.10; 
option subnet-mask 255.255.255.0; 
renew 2 2022/1/1 00:00:01; 
rebind 2 2022/1/1 00:00:01; 
expire 2 2022/1/1 0:00:01; 
} 

,或者你可以指定一個第二個IP的接口一樣/etc/network/interfaces

auto lo 
iface lo inet loopback 
iface eth0 inet dhcp 

auto eth0:1 
iface eth0:1 inet static 
address 10.10.10.2 
netmask 255.255.255.0 
+0

我用udhcpc都搞得像:\t \t使用udhcpc -n - f -i eth0 \t \t if ifconfig | grep -A1 eth0 | grep inet \t \t then –

+0

爲什麼不'auto eth0'? – ygoe