2012-10-04 18 views
6

Ich arbeite auf Embedded-Gerät mit Linux darauf. Ich möchte DHCP-Client zuerst verwenden, aber wenn es keine Antwort vom DHCP-Server gibt, möchte ich statische-Standard-IP einstellen. Ich nehme an, es sollte nicht kompliziert sein, aber ich habe keine strenge Antwort gefunden.Setzen Sie statische IP, wenn nicht von DHCP (Skript)

Ich denke an zwei Lösungen (Leider kann ich sie in wenigen Tagen testen):

  1. Ich habe statische IP mit ifconfig, dann rufe ich udhcpc. Wenn udhcpc keine neue IP erhält, bleibt die alte erhalten.

  2. Ich kann auch zuerst anrufen udhcpc, warten Sie eine Weile und prüfen, ob IP erhalten wird. Aber das ist nicht nett für mich. Ich möchte keine Warteroutinen in den Start hinzufügen.

BR Bartek

Ich benutze udhcpc - so etwas wie:

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

Antwort

20

dhclient sollte Rückfall über Leasing Erklärung haben einen Blick auf die dhclient.conf Manpage unterstützen.

so etwas zu Ihrem 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; 
} 

hinzufügen oder Sie können wie /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

Ich benutze udhcpc und machte so etwas wie eine zweite IP an die Schnittstelle zuweisen: \t \t udhcpc -n - f -i eth0 \t \t wenn ifconfig | grep -A1 eth0 | grep inet \t \t dann –

+0

Warum nicht auch 'auto eth0'? – ygoe