2012-10-04 33 views
6

Pracuję na wbudowanym urządzeniu z systemem Linux. Chcę najpierw użyć klienta DHCP, ale jeśli nie będzie odpowiedzi od serwera DHCP, chcę ustawić domyślne IP statyczne. Przypuszczam, że to nie powinno być skomplikowane, ale nie znalazłem ścisłej odpowiedzi.Ustaw statyczny adres IP, jeśli nie został uzyskany z DHCP (skrypt)

myślę o 2 rozwiązania (niestety mogę przetestować je w kilka dni):

  1. ustawić statyczny adres IP z ifconfig, a potem zadzwonię udhcpc. Jeśli udhcpc nie uzyska nowego adresu IP, stary pozostanie.

  2. Mogę również najpierw zadzwonić do udhcpc, odczekać chwilę i sprawdzić, czy uzyskano IP. Ale nie jest to dla mnie miłe. Nie chciałbym dodawać żadnych procedur oczekiwania do uruchomienia.

BR Bartek

używam udhcpc - coś jak:

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

Odpowiedz

20

dhclient powinny wspierać fallback poprzez deklarację dzierżawy spojrzeć na stronie dhclient.conf człowieka.

Dodaj coś takiego na swojej 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; 
} 

lub można przypisać drugą IP do interfejsu jak /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

używam udhcpc i uczynił coś takiego: \t \t udhcpc -n - f -i eth0 \t \t ifconfig | grep -A1 eth0 | grep inet \t \t następnie –

+0

Dlaczego nie również "auto eth0"? – ygoe