加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何使用shell验证IPv6地址格式?

发布时间:2020-12-15 21:22:29 所属栏目:安全 来源:网络整理
导读:在我的 shell中,我需要检查字符串是否是有效的IPv6地址. 我找到了两种方式,对我来说,它们都不够理想. 一个是http://twobit.us/2011/07/validating-ip-addresses/,而我想知道它是否必须如此复杂以满足这样一个共同的要求. 另一个是expand ipv6 address in she
在我的 shell中,我需要检查字符串是否是有效的IPv6地址.

我找到了两种方式,对我来说,它们都不够理想.

一个是http://twobit.us/2011/07/validating-ip-addresses/,而我想知道它是否必须如此复杂以满足这样一个共同的要求.

另一个是expand ipv6 address in shell script,这很简单,但对于Linux的主要发行版,sipcalc不是常见的默认实用程序.

所以我的问题是,有一个简单的方法或实用程序来验证带有shell的IPv6地址吗?

提前致谢.

解决方法

第一个链接中的代码不是特别优雅,但模数风格修复,我不认为你可以简化太多(并且在评论中指出,它可能已经太简单了).规范很复杂,并且要求许多可选功能,这对最终用户来说很好,但对于实现者来说却很麻烦.

您可能会找到一个通用脚本语言库,它可以将此逻辑正确地封装在库中.我的想法是Python,其中Python 3.3包含一个名为ipaddress的标准模块;对于旧版本,尝试类似的东西

#!/usr/bin/env python
import socket
import sys
try:
    socket.inet_pton(socket.AF_INET6,sys.argv[1])
    result=0
except socket.error:
    result=1
sys.exit(result)

另见Checking for IP addresses

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读