linux 实现局域网扫描

#/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 的远程计算机。
 

上一篇:用于PHP开发的有用Apache模块列表


下一篇:Ubuntu搭建Http服务器