在
文件中列出 CIDR 范围。其中一些不是"格式良好"的,以防它们有效,但有些程序不会接受它们。
示例:192.168/24
解析为:192.168.0.0/24
因此,在这种情况下,应该检查是否有 4 个八位字节。如果没有,脚本应为每个缺少的脚本应用 .0。
1.1.1/24变为 1.1.1.0/24
2.2/16变为 2.2.0.0/16...
谢谢 :-(
诀
窍是
- 将(部分(地址拆分为一个数组
- 将 4 个零附加到数组的末尾
- 获取结果数组的前 4 个元素,然后重新连接
.
例如:
cidr=192.168/24
IFS=. read -a octets <<< "${cidr%/*}"
octets+=(0 0 0 0)
printf -v network "%d.%d.%d.%d" "${octets[@]:0:4}"
printf '%s/%dn' "$network" "${cidr#*/}"
否则