IPv6 地址规则:
- IPv6 地址是 128 位,表示为 8 组 16 进制数,每组 4 个 16 进制数字,用
:
分隔。 - 你给出的前缀
2401:b60:e00e:704e
已经占据了前 4 组,我们需要随机生成 后 4 组(合法的 16 位随机数)。
Shell 脚本
#!/bin/bash
prefix="2401:b60:e00e:704e"
generate_ipv6() {
printf "%s:%04x:%04x:%04x:%04x\n" "$prefix" $((RANDOM & 0xFFFF)) $((RANDOM & 0xFFFF)) $((RANDOM & 0xFFFF)) $((RANDOM & 0xFFFF))
}
echo "随机生成的 12 个合法 IPv6 地址:"
for i in {1..12}; do
generate_ipv6
done
解释改动
- 生成 IPv6 地址时,
$((RANDOM & 0xFFFF))
只取 16 位,保证每组 4 位 16 进制数,符合 IPv6 规范。 printf "%s:%04x:%04x:%04x:%04x\n"
确保格式正确,每个数用 4 位 16 进制表示。
示例输出
随机生成的 12 个合法 IPv6 地址:
2401:b60:e00e:704e:a3f1:4d92:72ab:c381
2401:b60:e00e:704e:8b7e:21c4:de92:ff08
2401:b60:e00e:704e:abcd:1234:5678:9def
...