You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下获取无压缩完整格式IPv6地址的方法咨询

Linux下获取无压缩完整格式IPv6地址的方法咨询

嗨,刚好碰到过类似的需求,来给你支几招!

首先得说,ip address show eth0这个命令本身没有直接的参数能输出无压缩的完整IPv6格式,默认就是带::的压缩版,所以我们得靠管道搭配其他工具来转格式。

方法一:纯系统自带工具搞定(不用装新软件)

用CentOS默认就有的ip、grep、awk、sed这些工具串起来就行,命令如下:

ip -6 address show eth0 | grep inet6 | awk '{print $2}' | cut -d'/' -f1 | sed -e 's/::/:0000:0000:0000:0000:0000:0000:0000:0000/g' -e 's/\([0-9a-fA-F]\{1,3\}\)/000\1/g' -e 's/0*\([0-9a-fA-F]\{4\}\)/\1/g' -e 's/:0000\(:0000\)*:/:/g'

简单说下这个命令链的步骤:

  • 先只抓eth0的IPv6相关信息,过滤出带inet6的行
  • 提取出带前缀的IP部分,再把后面的/64前缀长度切掉
  • 最后用sed把::替换成连续的0000段,再把每一段补全到4位数字,整理成你要的完整格式

方法二:用专门的IPv6工具(更靠谱,需额外安装)

如果经常要处理IPv6,推荐装个inet6calc,这是专门处理IPv6地址的工具,逻辑更稳:
先装包:

yum install -y inet6calc

然后用这个命令转换:

ip -6 address show eth0 | grep inet6 | awk '{print $2}' | cut -d'/' -f1 | inet6calc --show-fulluncompressed

这个工具会自动帮你处理所有压缩情况,比自己写sed脚本省心多了。

方法三:用Python单行命令(逻辑最清晰)

如果你的机器上有Python(CentOS一般默认带Python2或3),用这个方法最不容易出错,因为Python的ipaddress模块是官方维护的,处理IPv6格式很靠谱:

ip -6 address show eth0 | grep inet6 | awk '{print $2}' | cut -d'/' -f1 | python -c "import sys, ipaddress; print(ipaddress.IPv6Address(sys.stdin.read().strip()).exploded)"

把压缩后的IP传给Python,它直接给你输出完整无压缩的格式,逻辑一目了然。

你可以根据自己的情况选其中一种,测试一下应该就能得到你要的那种不带任何压缩的完整IPv6地址啦!

备注:内容来源于stack exchange,提问作者Samul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:45:29