Re: lokale IP auslesen
Thomas Moritz <[email protected]> Tue, 22 Jun 2010 07:05:45 +0200
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | - |
| Message-ID | <[email protected]> |
Am Dienstag, 22. Juni 2010 00:56:51 schrieb David Haller:
Hallo David,
> 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.
Das wollte ich wissen. Ich hatte lediglich vermutet, dass die IP
irgendwo als einfacher String steht - ich es nur nicht finde!
> 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/'
Unter Linux-Bordmitteln ist mir das alles klar. Ich muss aber mit
Pascal (fpc /lazarus) auslesen. Hier reicht es, wenn ich ifconfig
und route ueber TProcess einbinde. Da moechte ich nicht noch ein sed
oder awk mit reinziehen.
> 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.
Schade, dass in proc wirklich nichts steht. Also lasse ich meine
Abfrage ueber ifconfig so wie sie ist. Ich hoffte, es ginge
einfacher.
MfG Th. Moritz