当前位置: 首页>>操作系统>>正文


如何获取Linux机器的IPV6 IP地址?

天地不仁 操作系统 , 去评论

问题描述

我想在我的linux框上获取IPV6地址。我知道一个命令来获取IPV6地址。

命令:

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

输出:

2001:410:0:39:221:28ff:fe46:eef4:fe80::221:28ff:fe46:eef4

但是问题是我只想要一次只意味着2001:410:0:39:221:28ff:fe46:eef4通过单一命令。

最佳解决办法

ip -6 addr

将显示您的IPv6地址。

次佳解决办法

$ /sbin/ifconfig | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link
      inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
      inet6 addr: ::1/128 Scope:Host

如果要随机选择一个IPv6地址

$ /sbin/ifconfig | grep inet6 | head -n 1
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

如果您想要第一个以太网适配器最常用的名称的IPv6地址

$ /sbin/ifconfig eth0 | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

如果你只是想要地址

$ /sbin/ifconfig eth0 |  awk '/inet6/{print $3}'
fe80::2ff:19ff:fe60:1a00/64

第三种解决办法

/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

/sbin/ip -6 addr | grep inet6的输出看起来像这样:

inet6 ::1/128 scope host 
inet6 2001:123:456:55f::1/64 scope global 
inet6 fe80::62eb:69ff:fed2:d2a6/64 scope link 

awk -F '[ \t]+|/' '{print $3}'将每行设置分隔符分为一个或多个空格或正斜杠。我们需要的是3美元。

grep -v ^::1 | grep -v ^fe80排除以::1fe80开头的任何行。

参考文献

注:本文内容整合自google/baidu/bing辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为@)。

本文由《共享笔记》整理, 博文地址: https://gxnotes.com/article/192140.html,未经允许,请勿转载。
Go