Re: lokale IP auslesen

David Haller <[email protected]> Tue, 22 Jun 2010 00:56:51 +0200
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hallo,

Am Mon, 21 Jun 2010, Thomas Moritz schrieb:
>derzeit lese ich die IP vom Output von /sbin/ifconfig.
>Gibt es eine einfachere Moeglichkeit ohne aufwendiges 
>String-Gewusel? 

Was ist an

====
#!/bin/sh
IF="${1:-eth0}";
LANG="C" /sbin/ifconfig "$IF" | sed -n '/addr:/s/.*addr:\([0-9\.]*\).*/\1/p';
====

aufwendiges Stringgewusel? Die Ausgabe von 'ip addr show' ist
jedenfalls nicht einfacher zu parsen.

Alternativ (v.a. hinter nem Router):

GET checkip.dyndns.org | sed 's/.*: *\([0-9.]*\)[ <].*/\1/'
curl http://checkip.dyndns.org | sed 's/.*: *\([0-9.]*\)[ <].*/\1/'
wget -q -O - http://checkip.dyndns.org | sed 's/.*: *\([0-9.]*\)[ <].*/\1/'

Achso, in /proc/ scheint's nicht zu sein, ifconfig liest die IP via
ioctl aus. Auf die Schnelle bekomm ich das in C auch nicht hin.

HTH,
-dnh

-- 
... at least I thought I was dancing, 'til somebody stepped on my hand.
                -- J. B. White