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 -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org