2012-10-04 29 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