验证 IP 地址(IPv4 和 IPv6)

Har*_*ikk 6 scripting bash ip ipv6 ipv4

很简单,我想验证一个字符串是否代表 bash 脚本中的有效 IP 地址。我想和许多其他人一样,我陷入了尝试用正则表达式来做这件事的陷阱;虽然这对于 IPv4 来说足够好,但 IPv6 更复杂(因为它支持零压缩),它只是一个复杂且不是特别可读的解决方案。

但是,unix 和 linux 清楚地了解 IP 地址,所以我想知道是否有更好的方法可以在 bash 中验证 IP 地址?最好是可用于执行此操作的合理通用工具。

我想避免使用其他语言(例如 Python)来执行此操作,因为我实际上希望替换当前使用 PHPfilter_var函数的解决方案。它有效,但与正则表达式一样,它引入了第二种语言,我希望避免使用一种语言。

最后,如果有一个解决方案也可以处理 IP 地址范围(例如 0.0.0.0-255.255.255.255 或 0.0.0.0/16 等),那将是理想的,但我可以自己处理这些

Rol*_*der 0

Ipcalc可以帮助您:

ipcalc -c <ip-address>
Run Code Online (Sandbox Code Playgroud)