Shell常用命令之主机检测(ping)

主机检测命令ping

  向网络主机发送ICMP回传请求

常用选项

-A:洪水攻击选项,启用此功能能在短时间之内发送大量的ping包
-b:开启ping网桥模式,默认不允许ping网桥
-c:设置发送多少个包
-D:设置ping的时间戳(很少用,暂未发现其作用)
-i:设置每一个包的间隔时间,只有超户能使用此选项(用过最小的值0.01
-I:设定源地址ping目的地址,源地址必须配置在网卡接口之上
-l:设置初次ping的时候同时能发送多少icmp包过去(用的也少,具体场景没找到) -r:直接绕过路由表(也没找到具体的场景,不知道是不是检测线路用的) -s:指定每次icmp包的大小,默认是56字节和8个icmp的头部包 -t:设置ttl值(ttl是数据包经过多重路由时,最大支持的路由节点数,每次经过一个路由,ttl值都会减少1,主要用来检测路由经过的节点) -w:指定超时时间,如:-w 10则ping只能执行10秒钟 -W:等待响应的时间,以秒计,该选项仅在没有任何响应的情况下影响超时。

指定源ip进行ping操作

 

ping -I 192.168.1.88 192.168.9.1
# 192.168.1.88:是本地源地址,配置在以太网接口之上
# 192.168.9.1:是目的地址

 

24位掩码局域网主机存活检测

#!/bin/bash -
red="e[31m"
shutdown="e[0m"
green="e[32m"
for ip in {1..254}
 do
  ping -c 1 -W1 -w 0.1 192.168.1.${ip} &> /dev/null 
  if [ $? -eq 0 ]
   then
    echo -e "${green}"192.168.1.${ip}${shutdown}" is running."
   else
    echo -e "${red}"192.168.1.${ip}${shutdown}" is stop."
  fi
done

16位局域网主机存活检测

#!/bin/bash -
red="e[31m"
shutdown="e[0m"
green="e[32m"
for IP in {0..254}
  do
    for ip in {1..254}
      do
      ping -c1 -W1 -w 0.1 192.168.$IP.$ip &> /dev/null
        if [ $? -eq 0 ]
          then
            echo -e "${green}"192.168.$IP.${ip}${shutdown}" is running."
          else
            echo -e "${red}"192.168.$IP.${ip}${shutdown}" is stop."
        fi
      done
  done

端口检测脚本

#!/bin/bash -
shutdown="e[0m"
green="e[32m"
for ip in {1..254}
 do
  ping -c 1 -W1 -w 0.1 192.168.1.${ip} &> /dev/null 
  if [ $? -eq 0 ]
   then
    echo -e "${green}#################################################${shutdown}"
    echo "Host 192.168.1.${ip} runs on the following ports. "
    nmap 192.168.1.$ip | sed -n '/^PORT/,/^MAC/p'| sed -n '/^[0-9]/p'
    echo -e "e[34m#################################################${shutdown}"
    echo ""
  fi
done
原文地址:https://www.cnblogs.com/guge-94/p/11119595.html