Sample0: Nur die IP Adresse von Ifconfig extrahieren

Gutn Abend,

ist es möglich nur die IP Adresse von Ifconfig zu extrahieren (Suse)?

danke && schönes Wochende!

  1. Hallo

    ist es möglich nur die IP Adresse von Ifconfig zu extrahieren (Suse)?

    Ja. Nach dem Linux IP Masquerading HOWTO sollte auch unter deutschen Linuxdistributionen folgendes das gewünschte (hier für eth0, awk im Pfad) leisten:

    ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'

    Erfolgreich getestet mit deutschsprachigem Ubuntu.

    Ich kann mich daran erinnern, vor Jahren mal was einfacheres geschrieben zu haben, was allerdings nur mit der englischen Ausgabe von ifconfig zurechtkam - und es später hartcodiert an die deutsche Ausgabe angepasst zu haben.

    Freundliche Grüße

    Vinzenz

    1. Hi,
      Alter Schwede..... das klappt ja 100%ig!
      Danke!

      1. Hallo

        Alter Schwede..... das klappt ja 100%ig!
        Danke!

        Prima, auch wenn ich es selbst nicht hätte schreiben können, da ich von der awk-Sprache keine Ahnung habe, obwohl ich schon verstehe, was passiert:

        Suche in der Ausgabe von ifconfig die Zeile, die eth0 enthält.
            Betrachte die nächste Zeile.
            Trenne die Ziel an Doppelpunkten auf und nimm den zweiten Abschnitt.
            Trenne diesen wiederum am Leerzeichen auf.
            Gib den ersten Abschnitt aus.

        Ich habe nachgeschaut, wie ich das vor Jahren selbst geschrieben habe. Grundsätzlich ging ich ganz analog vor:

        Meine Befehlszeile:

        ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1

        in Einzelschritten

        1. Schritt

        Gebe die Zeile in der Ausgabe von

        #     ifconfig eth0

        aus, in der die IP-Adresse steht. In dieser steht auch der String 'inet '

        Achtung: Ohne das Leerzeichen bekämen wir auch die Zeile mit der IPv6-Adresse

        Beispielausgabe:

        #               inet Adresse: 172.16.2.101  Bcast:172.16.255.255  Maske:255.255.0.0
        ifconfig eth0 | grep 'inet '

        2. Schritt

        Trenne das Resultat am Doppelpunkt auf und betrachte nur die zweite "Spalte"

        Beispielausgabe (ohne führende Leerzeichen):

        #    172.16.2.101  Bcast
        ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2

        3. Schritt

        Trenne analog zu Schritt 2 am Leerzeichen auf und betrachte nur die erste "Spalte"

        Beispielausgabe (ohne führende Leerzeichen):

        #    172.16.2.101

        die gewünschte IP-Adresse

        ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1

        Freundliche Grüße

        Vinzenz

        1. Hallo Vinzenz,

          ich danke dir echt tausend mal für deine hilfreiche erklärung zur arbeitsweise des befehls!
          Ich finde es verdammt toll!
          Danke!