GNU/Linux >> Znalost Linux >  >> Linux

Linux/bash:Jak získat IPv6 adresu rozhraní?

Existuje mnoho způsobů, jak to můžete udělat.

Tady je jeden:

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

Podobá se Robertově odpovědi, s tím rozdílem, že pouze vyškrtne adresu.


Můžete použít:

ip -6 addr

Vrátí všechny adresy IPv6, které jste nakonfigurovali.


Pokud používáte Linux, můžete také analyzovat:/proc/net/if_inet6

První sloupec je úplný IPv6 bez dvojteček. Šestý sloupec je název rozhraní.

Zde je poněkud zdlouhavá neoptimalizovaná verze (teď teprve základy awk) Možná je lepší volbou python/perl.

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

Pokud máte GNU awk (gawk), lze to zkrátit na:

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

Můžete ji vložit do funkce {ba,z,}sh a použít ji později.


Linux
  1. Jak zkrátit Bash Prompt v Linuxu?

  2. Linux – Jak získat adresu IPv4 pro rozhraní z /proc?

  3. Jak získat velikost adresáře v Linuxu

  1. Získejte IP adresu rozhraní v systému Linux

  2. Linux bash skript pro extrakci IP adresy

  3. Jak získat masku sítě z bash?

  1. Jak zjistit svou IP adresu v Linuxu

  2. Jak zakázat ipv6 na konkrétním rozhraní v linuxu?

  3. Jak získat ldapsearch na Scientific Linux?