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