写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

发布于:2025-06-11 ⋅ 阅读:(24) ⋅ 点赞:(0)

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

脚本1

#!/bin/bash
#定义变量
ip=10.1.1
#循环去ping主机的IP
for ((i=1;i<=10;i++))
do
	ping -c1 $ip.$i &>/dev/null
	[ $? -eq 0 ] && echo "$ip.$i is ok" >> /tmp/ip_up.txt || echo "$ip.$i is down" >> /tmp/ip_down.txt
done

脚本2

#!/bin/bash

# 定义IP范围(修改此处为你的实际网段)
start_ip=192.168.1.1
end_ip=192.168.1.254

# 结果文件
reachable_file="reachable_ips.txt"
unreachable_file="unreachable_ips.txt"

# 清空旧结果文件
> "$reachable_file"
> "$unreachable_file"

# 提取IP前三段作为基础网段
base_net=$(echo "$start_ip" | cut -d'.' -f1-3)

# 循环检测IP连通性
for i in $(seq 1 254); do
    ip="$base_net.$i"
    echo -n "检测 $ip ... "
    
    # 发送单次ping请求(1秒超时)
    if ping -c 1 -W 1 "$ip" &> /dev/null; then
        echo "$ip" >> "$reachable_file"
        echo "通 ✓"
    else
        echo "$ip" >> "$unreachable_file"
        echo "不通 ✗"
    fi
done

# 结果统计
echo "========================================"
echo "检测完成!结果已保存至:"
echo "可连通IP: $reachable_file(共 $(wc -l < "$reachable_file") 个)"
echo "不可连通IP: $unreachable_file(共 $(wc -l < "$unreachable_file") 个)"

使用说明:
修改网段
编辑 start_ip 和 end_ip 变量为你的实际局域网范围(例如 192.168.0.1-192.168.0.100)
结果文件
reachable_ips.txt:存储可连通IP(每行一个IP)
unreachable_ips.txt:存储不可连通IP

网站公告

今日签到

点亮在社区的每一天
去签到