Linux检测内网在线的主机

方法一:写一个shell脚本,循环ping网段内的每一个ip

编辑并保存getAllHosts.sh脚本,内容是:

#!/bin/bash
NETWORK=$1
for HOST in $(seq 1 254)
do
    ping -c 1 -w 1 $NETWORK.$HOST &>/dev/null && result=0 || result=1
        if [ "$result" == 0 ];then
            echo -e "\033[32;1m$NETWORK.$HOST is up! \033[0m"
        #echo "$NETWORK.$HOST" >> /home/y/AllHosts_up.txt
        else
            echo -e "\033[;31m$NETWORK.$HOST is down!\033[0m"
        #echo "$NETWORK.$HOST" >> /home/y/AllHosts_down.txt
    fi
done

用法:sh getAllHosts.sh <网段>,如:

y@ubuntu:~$ sh  getAllHosts.sh 172.16.247

方法二:用nmap工具包扫描

namp是Linux下的网络扫描和嗅探工具包,可用于扫描网上电脑开放的网络连接端口

如:

y@ubuntu:~$ nmap -sT  172.16.247.0/24

Starting Nmap 7.60 ( https://nmap.org ) at 2018-08-02 07:20 PDT
Nmap scan report for _gateway (172.16.247.2)
Host is up (0.0036s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
53/tcp open  domain

Nmap scan report for ubuntu (172.16.247.138)
Host is up (0.0013s latency).
All 1000 scanned ports on ubuntu (172.16.247.138) are closed

Nmap done: 256 IP addresses (2 hosts up) scanned in 2.63 seconds

可以看到,根据nmap扫描报告,找到2台主机,一台是172.16.247.2(是网关),另一台是172.16.247.138(是本机自己),最后提示共扫描了256个ip地址,2台主机是在线状态。

参考:
shell脚本实现批量测试局域网主机是否在线
检测局域网内主机存活脚本

猜你喜欢

转载自blog.csdn.net/yzpbright/article/details/81368458