zjisteni IP adresy v shell-scriptu

Michal Ludvig michal-linux na logix.cz
Středa Duben 3 09:17:29 CEST 2002


Michal Polák wrote:
> Nicmene dekuji a v prvni iteraci reseni meho problemu dam na vase rady a
> rozparseruju obsah vystupu prikazu ifconfig.

Vase argumenty vesmes uznavam, ale zmeny formatu vystupu ifconfigu bych 
se zas tak moc nebal. Jen si dejte pozor na nastaveni spravnych locales, 
aby vam to nevypsalo neco ve smyslu:

lo        Zapouzdření:Místní smyčka
           inet adr:127.0.0.1 Maska:255.0.0.0
           AKTIVOVÁNO SMYČKA BĚŽÍ  MTU:16436  Metrika:1

Nebo lepe parsujte vystup prikazu 'ip' - ten ma o neco "strojove 
prehlednejsi" vystup:

# ip -f inet addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
     inet 10.20.1.16/20 brd 10.20.15.255 scope global eth0
     inet 10.20.5.69/20 brd 10.20.15.255 scope global secondary eth0

Kdyz na tenhle vystup postvete neco jako
    awk '$1 ~ /inet/{gsub("/.*$", "", $2); print($2); exit;}'
tak dostanete tu prvni IP adresu.

Ale samozrejme nejstalejsi a na verzich cehokoliv nezavisle je napsat si 
vlastni programek (odhadem na min jak 20 radku), ktery vam tu adresu 
vypise. A kdyz ho navic slinkujete staticky s dietlibc, tak na nej 
muzete uplne zapomenout a proste ho pouzivat peknych par let beze zmen.

Michal Ludvig



Další informace o konferenci Linux