Qiu*_*fan 6 validation bash shell ipv6
在我的 shell 中,我需要检查字符串是否是有效的 IPv6 地址。
我找到了两种方法,对我来说它们都不够理想。
一个是http://twobit.us/2011/07/validating-ip-addresses/,而我想知道对于如此常见的要求是否必须如此复杂。
另一种是在shell脚本中扩展ipv6地址,这很简单,但对于Linux的主要发行版,sipcalc并不是一个常见的默认实用程序。
所以我的问题是,是否有一种简单的方法或实用程序可以使用 shell 验证 IPv6 地址?
提前致谢。
小智 4
大多数发行版都预装了 iproute2 包(名称可能有所不同)。所以你可以依靠命令 ip 来查询路由表:
ip -6 route get <probe_addr>/128 >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
即使在没有适当路由的机器上,当探测器采用有效的 v6 语法时,也会传递 rc=0。
另请参考grandcentral的答案,rc==1表示无效的IPv6地址。