IP aus String extrahieren

Diskutiere IP aus String extrahieren im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; [erledigt] IP aus String extrahieren Hallo, ich möchte aus einem String eine IP auslesen. Da die IP aus nicht immer von den gleichen Zeichen...

  1. #1 twelve, 26.11.2008
    Zuletzt bearbeitet: 27.11.2008
    twelve

    twelve Grünschnabel

    Dabei seit:
    26.11.2008
    Beiträge:
    2
    Zustimmungen:
    0
    [erledigt] IP aus String extrahieren

    Hallo,

    ich möchte aus einem String eine IP auslesen. Da die IP aus nicht immer von den gleichen Zeichen eingeschlossen wird, habe ich es mit einem regulären Ausdruck versucht.
    Leider komme ich aber zu keinem brauchbaren Ergebnis.
    Hier sind meine Versuche:

    1. Scheint zu funktionieren, außer es kommt eine Ziffer im Teilstring vor der IP vorkommt:
    - string="Hallo127.0.0.1Welt"; echo "${string}" | sed -e 's/\([^0-9]*\)\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)/\2/'
    -> Ausgabe: 127.0.0.1
    - string="12Hallo2k89.31.46.178Welt3"; echo "${string}" | sed -e 's/\([^0-9]*\)\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)/\2/'
    -> Ausgabe: 12Hallo289.31.46.178

    2. Extrahiert die IP, aber entfernt immer die erste(n) Ziffer(n) der IP:
    - string="Hallo127.0.0.1Welt"; expr match "$string" '.*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)'
    - string="Hallo127.0.0.1Welt"; echo "${string}" | sed -e 's/\(.*\)\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)/\2/'
    -> Ausgabe: 7.0.0.1
    - string="12Hallo2k89.31.46.178Welt3"; expr match "$string" '.*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)'
    - string="12Hallo2k89.31.46.178Welt3"; echo "${string}" | sed -e 's/\(.*\)\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\(.*\)/\2/'
    -> Ausgabe: 9.31.46.178

    Woran liegt es, dass der folgende Ausdruck nicht funktioniert (bzw. wie könnte er funktionieren):
    - string="12Hallo2k89.31.46.178Welt3"; expr match "$string" '\([0-9]\{1,3\}\(\.[0-9]\)\{3\}\)'

    Gruß
    Robert

    PS: Ich verwende die Bash unter Kubuntu, Debian und Cygwin.
     
  2. larry

    larry Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    159
    Zustimmungen:
    0
    Code:
    grep -Eo '[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}'
    dürfte funktionieren
     
  3. daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Tut's hier auch, zumindest als
    Code:
    alias sIp='ping -c1 <blahost.tld> | grep -Eo "[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}"'
    Somit mal Danke für Frage und Antwort, sowas such ich seit heut früh ;)
     
  4. twelve

    twelve Grünschnabel

    Dabei seit:
    26.11.2008
    Beiträge:
    2
    Zustimmungen:
    0
    Danke Larry, funktioniert wunderbar.
     
Thema:

IP aus String extrahieren

Die Seite wird geladen...

IP aus String extrahieren - Ähnliche Themen

  1. Einen String extrahieren per Regex Hilfe gesucht

    Einen String extrahieren per Regex Hilfe gesucht: Hallo Leute, ich habe folgenden String: <td><font color="Black"><a href="url.tld?ID=AEA6EA04"...
  2. String aus Webseite extrahieren

    String aus Webseite extrahieren: Hallo Community, ich möchte gern den Traffic meines Linksys Routers per Shell Script auslesen und in eine Datei schreiben. Leider ist mein...
  3. sed Pfad aus String extrahieren

    sed Pfad aus String extrahieren: [gelöst] sed Pfad aus String extrahieren Hallo Forum, ich verzweifel gerade an einer an sich simplen Aufgabe. Ich möchte aus einem String...
  4. Zahlen aus String extrahieren

    Zahlen aus String extrahieren: Hi, ich habe ein Problem mit php und komm irgendwie nicht auf die richtige Funktion: Und zwar habe ich einen String ("1,5,20,95,150,1375") und...
  5. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...