GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux/bash:Wie erhalte ich die IPv6-Adresse der Schnittstelle?

Dafür gibt es viele Möglichkeiten.

Hier ist einer:

ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'

Es ähnelt Roberts Antwort, außer dass nur die Adresse entfernt wird.


Sie könnten Folgendes verwenden:

ip -6 addr

Es werden alle von Ihnen konfigurierten IPv6-Adressen zurückgegeben.


Unter Linux können Sie auch Folgendes parsen:/proc/net/if_inet6

Die erste Spalte ist die vollständige IPv6 ohne Doppelpunkte. Die sechste Spalte ist der Schnittstellenname.

Hier eine ziemlich lange nicht optimierte Version (ich habe jetzt erst die Grundlagen von awk kennengelernt). Vielleicht ist Python/Perl die bessere Wahl.

for i in "$(grep enp0s25 /proc/net/if_inet6)"; do
    echo "$i" | awk '{
        split($1, _, "[0-9a-f]{,4}", seps)
        joined = sep = ""
        for (i=1; i in seps; i++) {
            joined = joined sep seps[i]
            sep = ":"
        }
        print joined
    }'
done

Wenn Sie GNU awk (gawk) haben, kann dies verkürzt werden zu:

for i in "$(grep enp0s25 /proc/net/if_inet6)"; do
    echo "$i" | gawk '@include "join"
    {
        split($1, _, "[0-9a-f]{,4}", seps)
        print join(seps, 1, length(seps), ":")
    }'
done

Sie können es in eine {ba,z,}sh-Funktion einfügen, um es später zu verwenden.


Linux
  1. Wie kürze ich die Bash-Eingabeaufforderung unter Linux?

  2. Linux – Wie bekomme ich die IPv4-Adresse für eine Schnittstelle von /proc?

  3. Rufen Sie die IP-Adresse einer Schnittstelle unter Linux ab

  4. Wie deaktiviere ich IPv6 auf einer bestimmten Schnittstelle in Linux?

  5. Wie bekomme ich eine Netzmaske von Bash?

So finden Sie die IP-Adresse unter Linux

So ändern Sie die MAC-Adresse in Linux

So ändern Sie die IP-Adresse unter Linux

So erhalten Sie Ihre IP-Adresse unter Linux

So finden Sie die IP-Adresse in Linux

So finden Sie Ihre IP-Adresse (IPv4 und IPv6) unter Rocky Linux