Hallo Liste, Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe! rs PS: rechner läuft unter suse 9.1 nur textmodus
Am Samstag, 25. Dezember 2004 14:40 schrieb Raffael Schmid:
Hallo Liste,
Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe!
grep findet in der Ausgabe von ifconfig nur die entsprechenden Zeilen, aber schau dir mal sed an, damit kannst du die gefundenen Zeilen auch 'zurechtschnippeln' bzw. dir mit \(...\) auch einen Teilstring zwischenspeichern und dann nur diesen ausgeben (man sed, RFC der RegEx). Oder schau mal ins Archiv. Ich bin von Weihnachtsschnaps zu besoffen, um jetzt etwas brauchbares zusammenzuschreiben ;-) -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Am Samstag, 25. Dezember 2004 15:50 schrieb Matthias Houdek:
Am Samstag, 25. Dezember 2004 14:40 schrieb Raffael Schmid:
Hallo Liste,
Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe!
grep findet in der Ausgabe von ifconfig nur die entsprechenden Zeilen, aber schau dir mal sed an, damit kannst du die gefundenen Zeilen auch 'zurechtschnippeln' bzw. dir mit \(...\) auch einen Teilstring zwischenspeichern und dann nur diesen ausgeben (man sed, RFC der RegEx).
Oder schau mal ins Archiv.
Ich bin von Weihnachtsschnaps zu besoffen, um jetzt etwas brauchbares zusammenzuschreiben ;-)
Bin wieder nüchtern ;-) Das sollte z.B. klappen: ifconfig eth0 | sed '{s/^.*[Aa]d*r[es]*:\([0-9\.]*\).*$/\1/g;/[a-z]/d}' ^^^^^^^^^^^ Das sucht sowohl nach der deutschen wie der englischen Variante, kann man auch vereinfachen -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Hallo zusammen! Vielen Dank für eure Antworten. Ich habe es nun so gelöst: IPADDR=`ifconfig eth0 | grep 'inet addr' | cut -d ":" -f2 | cut -d " " -f1` Gruss rs PS: Aber Matthias... schon um 15.50 angetrunken ? ;)
Am Sonntag, 26. Dezember 2004 12:08 schrieb Raffael Schmid:
Hallo zusammen!
Vielen Dank für eure Antworten. Ich habe es nun so gelöst:
IPADDR=`ifconfig eth0 | grep 'inet addr' | cut -d ":" -f2 | cut -d " " -f1`
4 Prozesse für eine kleine Abfrage ... *tstst* ;-)
Gruss
rs
PS: Aber Matthias... schon um 15.50 angetrunken ? ;)
Klar, nach dem Festtagsbraten brauchte ich mindestens $MAX Carlsbader Becher *g* -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Am Sonntag, 26. Dezember 2004 12:36 schrieb Matthias Houdek:
PS: Aber Matthias... schon um 15.50 angetrunken ? ;)
Klar, nach dem Festtagsbraten brauchte ich mindestens $MAX Carlsbader Becher *g*
Wegen des Bratens, oder wegen der Verwandtschaft? ;-))) SCNR, Michael -- ____ / / / / /__/ Michael Höhne / / / / / / mih-hoehne@t-online.de / _____________________________________/
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am Sonntag, 26. Dezember 2004 12:36 schrieb Matthias Houdek:
Am Sonntag, 26. Dezember 2004 12:08 schrieb Raffael Schmid:
Hallo zusammen!
Vielen Dank für eure Antworten. Ich habe es nun so gelöst:
IPADDR=`ifconfig eth0 | grep 'inet addr' | cut -d ":" -f2 | cut -d " " -f1`
4 Prozesse für eine kleine Abfrage ... *tstst* ;-)
Genau, aber warum einfach, wenn es auch umständlich geht. IPADDR=`ipaddr eth0` Frohes Fest allerseits Thomas - -- icq:133073900 aim:tawhv -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFBzsQ7He2ZLU3NgHsRArfHAJ4gS+XNzHGbjvDjbwcAqVlsiBohogCePuSK 7qlhtOMGtoxZcIAvp6RPxmM= =af1e -----END PGP SIGNATURE-----
Am Sonntag, 26. Dezember 2004 15:01 schrieb Thomas Arend:
4 Prozesse für eine kleine Abfrage ... *tstst* ;-)
Genau, aber warum einfach, wenn es auch umständlich geht.
IPADDR=`ipaddr eth0`
# ipaddr eth0 ipaddr: unknown parameter. Try '--help'. # ipaddr -i eth0 Adresse:192.168.10.3 Also ein zusätzliches cut oder was auch immer muss schon sein. # ipaddr -i eth0 | cut -d: -f2 192.168.10.3 -- Andreas
Andreas Winkelmann schrieb:
# ipaddr eth0 ipaddr: unknown parameter. Try '--help'.
# ipaddr -i eth0 Adresse:192.168.10.3
Also ein zusätzliches cut oder was auch immer muss schon sein.
# ipaddr -i eth0 | cut -d: -f2 192.168.10.3
Nein, das geht mit LC_ALL=en_US; ipaddr Der Grund: -------8<--------- # LC_ALL=de_DE@euro [root@burdon]-14-xterm /usr/bin 617 # ifconfig eth0 eth0 Protokoll:Ethernet Hardware Adresse 00:D0:B7:70:14:43 inet Adresse:192.168.0.51 Bcast:192.168.0.255 ^^^^^^^ [...] # LC_ALL=en_US # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:D0:B7:70:14:43 inet addr:192.168.0.51 Bcast:192.168.0.255 ^^^^ [...] -------8<--------- Der kleine 'Fehler' ist im Script ipaddr in der function go: go() { /sbin/ifconfig | grep "$netif" -A 1 | tail -n 1 | awk '{print $2}' | sed "s/addr://" } Hier wird eben nach 'addr:' gefiltert statt nach 'Adresse:' Daraus ergibt sich ein Tip, der für alle eigenen Scripte seine Berechtigung hat: Die locale immer so setzen, dass die Ausgabe von Befehlen auch in der Sprache ist, die man haben möchte. Z.B. eben, indem man LC_ALL=en_US an den Anfang des Scriptes setzt. -- Gruss Bernd
Am Sonntag, 26. Dezember 2004 15:21 schrieb Raffael Schmid:
hallo,
Genau, aber warum einfach, wenn es auch umständlich geht.
IPADDR=`ipaddr eth0`
Ja, wenn es diesen Befehl nicht gibt...... keine Ahnung warum...
Hi, probier mal ipmaddr ergab sich nach eingabe von ip [tab] [tab] ... Gued gohn Joachim Tüns
Am Sonntag, 26. Dezember 2004 15:01 schrieb Thomas Arend:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am Sonntag, 26. Dezember 2004 12:36 schrieb Matthias Houdek:
Am Sonntag, 26. Dezember 2004 12:08 schrieb Raffael Schmid:
Hallo zusammen!
Vielen Dank für eure Antworten. Ich habe es nun so gelöst:
IPADDR=`ifconfig eth0 | grep 'inet addr' | cut -d ":" -f2 | cut -d " " -f1`
4 Prozesse für eine kleine Abfrage ... *tstst* ;-)
Genau, aber warum einfach, wenn es auch umständlich geht.
IPADDR=`ipaddr eth0`
Darum: matthias@linux:~$ ipaddr eth0 bash: ipaddr: command not found (Als root geht es auch nicht, which findet auch nix) Scheint wohl nicht jeder auf seinerm Rechner zu haben. grep, sed, cut gehören da wohl eher zum Standard. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Genau, aber warum einfach, wenn es auch umständlich geht.
IPADDR=`ipaddr eth0`
Darum: matthias@linux:~$ ipaddr eth0 bash: ipaddr: command not found
(Als root geht es auch nicht, which findet auch nix)
Scheint wohl nicht jeder auf seinerm Rechner zu haben. grep, sed, cut gehören da wohl eher zum Standard.
Hi Max, ipaddr ist in shtools enthalten. Zumindest bei Suse 9.0 dabei. Oder aber ein RPM von rpmfind.net installieren http://fr2.rpmfind.net/linux/rpm2html/search.php?query=shtools&submit=Search+...&system=&arch= Gruß Timothy -- "Es gibt zwei Dinge im Leben, die du nicht zurücknehmen kannst: Denn Pfeil den du verschossen und das Wort, das du gesprochen" - altes indianisches Sprichwort
Matthias Houdek schrieb:
Darum: matthias@linux:~$ ipaddr eth0 bash: ipaddr: command not found
(Als root geht es auch nicht, which findet auch nix)
pin ipaddr ergibt: shtools (/usr/bin/ipaddr) habe ich aber auch nicht standardmäßig installiert... Gruß Günther
Matthias Houdek schrieb:
Am Samstag, 25. Dezember 2004 15:50 schrieb Matthias Houdek:
Am Samstag, 25. Dezember 2004 14:40 schrieb Raffael Schmid:
Hallo Liste,
Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe!
grep findet in der Ausgabe von ifconfig nur die entsprechenden Zeilen, aber schau dir mal sed an, damit kannst du die gefundenen Zeilen auch 'zurechtschnippeln' bzw. dir mit \(...\) auch einen Teilstring zwischenspeichern und dann nur diesen ausgeben (man sed, RFC der RegEx).
Oder schau mal ins Archiv.
Ich bin von Weihnachtsschnaps zu besoffen, um jetzt etwas brauchbares zusammenzuschreiben ;-)
Bin wieder nüchtern ;-)
Das sollte z.B. klappen:
ifconfig eth0 | sed '{s/^.*[Aa]d*r[es]*:\([0-9\.]*\).*$/\1/g;/[a-z]/d}' ^^^^^^^^^^^ Das sucht sowohl nach der deutschen wie der englischen Variante, kann man auch vereinfachen
*g* Seit SuSE 6.x, oder schon vorher gibts /usr/bin/ipaddr Guckst Du da. SCNR -- Gruss Bernd
Am Sonntag, 26. Dezember 2004 12:42 schrieb Bernd Obermayr:
Matthias Houdek schrieb:
Am Samstag, 25. Dezember 2004 15:50 schrieb Matthias Houdek:
Am Samstag, 25. Dezember 2004 14:40 schrieb Raffael Schmid:
Hallo Liste,
Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe!
grep findet in der Ausgabe von ifconfig nur die entsprechenden Zeilen, aber schau dir mal sed an, damit kannst du die gefundenen Zeilen auch 'zurechtschnippeln' bzw. dir mit \(...\) auch einen Teilstring zwischenspeichern und dann nur diesen ausgeben (man sed, RFC der RegEx).
Oder schau mal ins Archiv.
Ich bin von Weihnachtsschnaps zu besoffen, um jetzt etwas brauchbares zusammenzuschreiben ;-)
Bin wieder nüchtern ;-)
Das sollte z.B. klappen:
ifconfig eth0 | sed '{s/^.*[Aa]d*r[es]*:\([0-9\.]*\).*$/\1/g;/[a-z]/d}' ^^^^^^^^^^^ Das sucht sowohl nach der deutschen wie der englischen Variante, kann man auch vereinfachen
*g* Seit SuSE 6.x, oder schon vorher gibts /usr/bin/ipaddr
Guckst Du da.
Hab ich bei mir nicht (ich hab auch keine Suse mehr ;-). Das da oben geht wohl auf (fast) jedem *nix so oder so ähnlich. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
Hi, On Sunday 26 December 2004 09:31, Matthias Houdek wrote:
ifconfig eth0 | sed '{s/^.*[Aa]d*r[es]*:\([0-9\.]*\).*$/\1/g;/[a-z]/d}' ^^^^^^^^^^^ Das sucht sowohl nach der deutschen wie der englischen Variante, kann man auch vereinfachen
Nachfolgendes Konstrukt ist auch ziemlich sprachneutral:
/sbin/ifconfig eth1 | awk --posix '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ { print $2 }' | awk -F : '{ print $2 }'
Liebe Grüße,
Andreas
--
Andreas Otto
Hi Raffael, wie wäre es mit : /sbin/ifconfig |grep "ppp0" -A 1|tail -n 1|sed s#\*\#.#g |cut -d":" -f2|sed s# \ \#d#g |sed s#\ddP-t-P\#\#g oder etwas einfacher : ifconfig ppp0|grep inet|cut -d ":" -f3|cut -d " " -f1 in diesen Fällen ist es ppp0 ( also meine DSL-Anbindung ) Frohe Weihnachten noch Martin Am Samstag, 25. Dezember 2004 14:40 schrieb Raffael Schmid:
Hallo Liste,
Ich möchte per Shell-Script die aktuelle IP-Adresse von einem DHCP-Client in eine Variable schreiben. Ich habe scho diverses mit grep, cut, .... probiert... aber es kommt nicht das heraus das sollte... ich hoffe auf schnelle Hilfe!
participants (12)
-
Andreas Otto
-
Andreas Winkelmann
-
Günther Zinsberger
-
Illuminatus@t-online.de
-
Joachim Tüns
-
Martin hehnen
-
Matthias Houdek
-
Michael Hoehne
-
Peter Geerds
-
Raffael Schmid
-
Thomas Arend
-
Timothy Kesten