Anzeige:
Ergebnis 1 bis 13 von 13

Thema: IP-Adresse ausfiltern

  1. #1
    wer_ner
    Gast

    Post IP-Adresse ausfiltern

    Hallo,
    für die Anmeldung bei dyndns.org muß ich meine IP-Adresse aus einer Ausgabe wie folgender ausfiltern:

    Data transfer complete
    [1,76GIhre IP-Adresse lautet
    [31G212.105.216.201
    [43GEin Service von
    [34i

    Suchen würde ich z.B hier 212.105.216.201

    wie könnte ich dies mit Bash-Mitteln machen.
    Grüße,
    Werner

  2. #2
    Registrierter Benutzer
    Registriert seit
    11.08.2001
    Beiträge
    64

    Post

    Hi Werner!

    hm, machs doch lieber mit ifconfig:

    IP=`/sbin/ifconfig ippp0|grep inet|sed 's/ */:/g'|sed 's/^://g'|cut -d: -f3`

    fuer den fall, das du mit ippp0 eingewaehlt bist


    Gruss
    -ponzellus-

  3. #3
    wer_ner
    Gast

    Post

    Hi,
    nein geht leider nicht, da ich mich über einen DSL-Router einwähle und nur über einen Umweg an meine IP-Adresse rankomme.
    Die Ausgabe einer Webseite wird in einer Datei gespeichert. Ein Auszug ist oben.
    Aus dem muß ich die IP auslesen.
    Grüße,
    Werner

  4. #4
    wer_ner
    Gast

    Post

    Hi nochmal,
    noch was vergessen.
    Vielleicht weißt Du, wie ich den String:

    (1-3 x [0-9]).(1-3 x [0-9]).(1-3 x [0-9]).(1-3 x [0-9])

    darstellen könnte?
    Werner

  5. #5
    Registrierter Benutzer
    Registriert seit
    11.08.2001
    Beiträge
    64

    Post

    Hi!

    der String:
    (1-3 x [0-9]).(1-3 x [0-9]).(1-3 x [0-9]).(1-3 x [0-9])
    wuerde als regulaerer Ausdruck, soweit ich Dich Dich richtig verstanden habe, so aussehen:

    [0-9]{1,3}\.[0-9/]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

    danach koenntest du z.B. in Deiner Ausgabe suchen und in einer Variablen speichern.
    Wie genau das in der bash geht, weiss ich nicht, aber in perl wuerde es so funktionieren (in $line is immer eine Zeile der Ausgabe)

    Code:
    if($line =~ /[0-9]{1,3}\.[0-9/]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/) {
    $IP = $&;
    }
    Viele Gruesse
    -ponzellus-

  6. #6
    Senior Mitglied
    Registriert seit
    23.08.1999
    Beiträge
    132

    Post

    echo 31G234.35.46.136 | egrep "[0-9]??\.[0-9]??\.[0-9]??\.[0-9]??"

    Gruß
    Tobias

  7. #7
    wer_ner
    Gast

    Post

    Hallo,
    vielen Dank für Ihre Angaben, ich probiere es aus und rühre mich wieder.

    @Tobias

    [0-9]?? bedeutet 3 x [1-9] ?

    Gibt es wo Beschreibungen für diese Ausdrücke ? Ich habe gestern z.B. bei der Linuxfibel gesucht aber nichts gefunden.

    Grüße,
    Werner

  8. #8
    Registrierter Benutzer
    Registriert seit
    13.04.1999
    Ort
    Rheinstetten
    Beiträge
    122

    Post

    Such einfach mal nach "regulären Ausdrücken"!

  9. #9
    wer_ner
    Gast

    Post

    Hallo,
    erstmal vielen Dank für Eure Antworten,
    jetzt geht mein Problem weiter, da ich es trotz heftigem Wälzen von Literatur nicht hinbekomme.

    ich habe folgendes:

    #!/bin/ksh

    lynx -dump http://www.ipnummer.de/ippop.pl|grep "[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}"

    obigen Befehl in einer Zeile. Damit erhalte ich meine aktuelle IP-Adresse.

    Allerdings stehen nun ein paar TABs vor der IP-Nummer.

    Wie bekomme ich die denn noch weg, so daß dann nur noch die IP-Nummer überbleibt.

    Das nächste Problem:
    Die IP-Nummer soll in einer Datei gespeichert werden und dann regelmäßig verglichen werden. Kann man denn in diesen Fall sowas wie

    alt-ip=$(less ALT_IP_Datei)
    neu-ip=$(less NEU_IP_Datei)

    [ "$alt-ip" != "$neu-ip" ] .... ?

    Grüße,
    Werner

  10. #10
    Senior Mitglied
    Registriert seit
    23.08.1999
    Beiträge
    132

    Lightbulb

    Zu den Tabulatoren:

    #!/bin/bash
    set $(lynx -dump http://www.ipnummer.de/ippop.pl|grep "[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}")
    MyIP=$1

    Mit Set werden Paramter durch verwendung des Feldtrenners(Shellvariable IFS) in einzelne Parameter aufgeteilt. Da Tabulaturen eines von diesen Feldtrennzeichen sind fallen sie weg.

    Die IP-Nummer soll in einer Datei gespeichert werden: www.linuxfibel.de--->Ein-/Ausgabeumleitung lesen


    alt-ip=$(less ALT_IP_Datei)
    neu-ip=$(less NEU_IP_Datei)

    statt less besser cat verwenden, da less auf eine Eingabe wartet

    Gruß
    Tobias

  11. #11
    wer_ner
    Gast

    Post

    Hi,
    vielen Dank an alle, jetzt habe ich den ersten Schritt erledigt.
    Gruß,
    Werner

  12. #12
    formtapez
    Gast
    Alternativ könnte man noch www.wieistmeineip.de abfragen. Aber eigentlich ists auch überflüssig. Installier einfach ddclient, das ist ein dyndns-IP-Update-Tool das auch einen IP-Ermittlungs-Modus hat, der automatisch per HTTP die IP ermittelt.

    MfG
    formtapez

  13. #13
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    23-08-2001, 06:55 *g*

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •