帮我写一个将IP段变为IP的shell脚本
以下是一个将IP段变为IP的shell脚本的例子:
#!/bin/bash
# 获取用户输入的IP段
echo "请输入IP段(格式为x.x.x.x-x.x.x.x):"
read ip_range
# 分割IP段
start_ip=$(echo $ip_range | cut -d'-' -f1)
end_ip=$(echo $ip_range | cut -d'-' -f2)
# 将IP段转换为整数
start_int=$(printf '%d' $(echo $start_ip | awk -F'.' '{print $1*256^3+$2*256^2+$3*256+$4}'))
end_int=$(printf '%d' $(echo $end_ip | awk -F'.' '{print $1*256^3+$2*256^2+$3*256+$4}'))
# 输出IP段中的所有IP
for ((ip_int=$start_int; ip_int<=$end_int; ip_int++))
do
ip=$(printf '%d.%d.%d.%d\n' $(($ip_int/256/256/256%256)) $(($ip_int/256/256%256)) $(($ip_int/256%256)) $(($ip_int%256)))
echo $ip
done
使用方法:
- 将上述脚本保存为一个名为
ip_range_to_ips.sh的文件。 - 打开终端,并进入脚本所在的目录。
- 运行以下命令来赋予脚本执行权限:
chmod +x ip_range_to_ips.sh - 运行脚本:
./ip_range_to_ips.sh - 根据提示输入IP段,例如
192.168.0.1-192.168.0.10。 - 脚本将输出IP段中的所有IP
原文地址: https://www.cveoy.top/t/topic/iBld 著作权归作者所有。请勿转载和采集!