#/bin/bash
#初始化 up.txt down.txt 文件
>up.txt
>down.txt
#for循环遍历1..254 的ip地址
for i in {1..254}
do
(if ping 192.168.0.$i -c 1 -w 1 &>/dev/null;then
echo "192.168.74.$i已使用" >> up.txt
else
echo "192.168.74.$i未使用" >> down.txt
fi)&
done
解析:
ping 命令用于检测网络的连通性
-c 1 只发送一个数据包,避免一直ping下去
-w 1指定超时间隔,单位为毫秒
()& 后台启动多个bash进程并行,提高脚本的执行速度
ping命令详解
-t :Ping 指定的计算机直到中断。
-a :将地址解析为计算机名。
-n count :发送 count 指定的 ECHO 数据包数。默认值为 4。
-l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
-i ttl :将"生存时间"字段设置为 ttl 指定的值。
-v tos :将"服务类型"字段设置为 tos 指定的值。
-r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count :指定 count 指定的跃点数的时间戳。
-j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout :指定超时间隔,单位为毫秒。
destination-list :指定要 ping 的远程计算机。