设置静态IP,如果没有从DHCP获取(脚本)

我使用Linux上的embedded式设备工作。 我想首先使用DHCP客户端,但是如果从DHCP服务器没有应答,我想设置静态默认IP。 我想这不应该是复杂的,但我没有find严格的答案。

我正在考虑2个解决scheme(不幸的是我可以在几天内testing):

  1. 我用ifconfig设置静态IP,然后我打电话给udhcpc。 如果udhcpc不会获得新的IP,旧的将停留。

  2. 我也可以先调用udhcpc,等一会儿,检查IP是否获得。 但是这对我不好。 我不想在启动时添加任何等待例程。

BR Bartek

我使用udhcpc – 如下所示:

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

Solutions Collecting From Web of "设置静态IP,如果没有从DHCP获取(脚本)"

dhclient应该通过租赁声明支持fallback,看看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