Mailinglist Archive: opensuse-programming-de (33 mails)

< Previous Next >
Re: [opensuse-programming-de] lokale IP auslesen
  • From: Thomas Moritz <thm_ml@xxxxxxxxxxx>
  • Date: Tue, 22 Jun 2010 07:05:45 +0200
  • Message-id: <201006220705.46214.thm_ml@xxxxxxxxxxx>
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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >