Linux/bash:如何获取接口的 IPv6 地址?

Ond*_*žka 6 linux bash ipv6

我可以使用什么命令来获取脚本中接口的 IPv6 地址?

更新:来自答案之一的 sed 输出。

$ 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
Run Code Online (Sandbox Code Playgroud)

另一个:

$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;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
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 16

有很多方法可以做到这一点。

这是一个:

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

它类似于罗伯特的回答,只是只去掉了地址。


小智 12

你可以使用:

ip -6 addr
Run Code Online (Sandbox Code Playgroud)

它将返回您配置的所有 IPv6 地址。