Linux / bash: Como obter o endereço IPv6 da interface?

4

Qual comando posso usar para obter o endereço IPv6 de uma interface em um script?

Atualização: saída de sed de uma das respostas.

$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::224:d7ff:fed0:4f5c/64 scope link 
       valid_lft forever preferred_lft forever

O outro:

$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$//;t;d'
$ ip addr show dev eth0
  2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
  link/ether f0:de:f1:7b:e9:6c brd ff:ff:ff:ff:ff:ff
    
por Ondra Žižka 14.02.2012 / 14:13

2 respostas

9

Você pode usar:

ip -6 addr

Ele retornará todos os endereços IPv6 que você configurou.

    
por 14.02.2012 / 14:22
12

Existem muitas maneiras de fazer isso.

Aqui está um:

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

É semelhante à resposta de Robert, exceto eliminar apenas o endereço.

    
por 14.02.2012 / 14:25

Tags