使用shell查看当前局域网宕机的IP地址

使用shell查看当前局域网宕机的IP地址
测试环境 macOS 12neil192 ~ %sysctl-nhw.model 10Mac14,2 neil192 ~ % sw_vers ProductName: macOS ProductVersion:12.7.4 BuildVersion: 21H1123 neil192 ~ %用到的命令ifconfig : 我们需要使用这个命令来查看自己的局域网网段从而才能使用ping来尝试连接。ping : 我们使用ping来尝试连接即测试是否宕机。shell中的for循环步骤1.使用ifconfig查看自己的局域网网段补充说明grep -E 拓展的正则表达式第十行找到我所在的局域网网段为192.168.1.xxx# 使用ifconfig查看自己的局域网网段neil192 ~ %ifconfig|grep-E(inet|netmask)inet127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen128inet6 fe80::1%lo0 prefixlen64scopeid 0x1 inet6 fe80::3482:e3ff:feed:b18%anpi1 prefixlen64scopeid 0x4 inet6 fe80::3482:e3ff:feed:b17%anpi0 prefixlen64scopeid 0x5 inet6 fe80::1818:edca:8495:3b76%en0 prefixlen64secured scopeid 0xb# 下面这一行就是我们的局域网所在网段inet192.168.1.7 netmask 0xffffff00 broadcast192.168.1.255 inet6 240e:3ba:30b9:de60:1871:4e51:fb11:b7ac prefixlen64autoconf secured inet6 240e:3ba:30b9:de60:cd3e:16b3:6d8:f28 prefixlen64autoconf temporary inet6 fe80::78d5:4bff:fe0c:9a5d%awdl0 prefixlen64scopeid 0xc inet6 fe80::78d5:4bff:fe0c:9a5d%llw0 prefixlen64scopeid 0xd inet6 fe80::5aac:6efa:9d96:7e94%utun3 prefixlen64scopeid 0x12 inet6 fe80::d617:1ed0:a01f:8bd4%utun4 prefixlen64scopeid 0x13 inet6 fe80::ce81:b1c:bd2c:69e%utun5 prefixlen64scopeid 0x142.让我们来编写一个带有for循环的shell脚本来尝试ping所有本局域网内的地址#!/bin/bash# 从192.168.1.1 到 192.168.1.254foriin{1..254};do# 使用pingping-c2-i0.5192.168.1.$iif[$?-eq0];thenecho192.168.1.$iis upelseecho192.168.1.$iis downfidone别忘了赋予使用chmod x ping.sh来赋予脚本执行权限。3.执行脚本得到测试结果。一个小技巧改进输出结果以上方法虽然已经足够实现功能然而美中不足的地方在于直接echo ping输出的内容又多又杂可读性比较差我们只关心IP地址和是否宕机的话可以对pīng.sh如下改进:#!/bin/bash# from 192.168.1.1 to 192.168.1.254foriin{1..254};do# 现在我们将无用的信息重定向进/dev/null当中ping-c2-i0.5192.168.1.$i/dev/nullif[$?-eq0];thenecho192.168.1.$iis upelseecho192.168.1.$iis downfidone再次运行我们得到了清爽的结果neil192 00_shell % ./ping.sh192.168.1.1 is up192.168.1.2 is down192.168.1.3 is up192.168.1.4 is down192.168.1.5 is down192.168.1.6 is up192.168.1.7 is up192.168.1.8 is down192.168.1.9 is down192.168.1.10 is down192.168.1.11 is down补充知识IP地址用途说明192.168.1.0网络地址标识整个网络设备不能用192.168.1.1通常为网关路由器/网关地址192.168.1.2 - 192.168.1.254可用主机地址设备可以使用的IP192.168.1.255广播地址全网广播设备不能用