#!/bin/bash
# 定义要探测的IP地址范围
start_ip="192.168.0.1"
end_ip="192.168.0.255"
# 将IP地址转换为整数
ip_to_int() {
local IFS="."
read -r ip1 ip2 ip3 ip4 <<< "$1"
echo $((ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4))
}
# 将整数转换为IP地址
int_to_ip() {
local ip=$1
echo "$((ip / 256 / 256 / 256)).$(((ip / 256 / 256) % 256)).$(((ip / 256) % 256)).$((ip % 256))"
}
# 循环遍历IP地址范围
current_ip=$(ip_to_int "$start_ip")
end_ip=$(ip_to_int "$end_ip")
while true; do
ip=$(int_to_ip $current_ip)
# 使用ping命令探测IP是否可达
ping -c 1 -W 1 $ip > /dev/null
# 检查ping命令的返回值,如果返回值为0,则表示IP可达
if [ $? -eq 0 ]; then
echo "IP地址 $ip 可达"
else
echo "IP地址 $ip 不可达"
fi
# 判断是否已经到达结束IP地址
if [ $current_ip -eq $end_ip ]; then
break
fi
# 递增IP地址
current_ip=$((current_ip + 1))
done
IP探测工具
于 2023-11-15 13:07:32 首次发布