编写shell脚本,扫描内网192.168.1.0/24网段主机是否存活
时间: 2023-04-06 16:03:13 浏览: 181
我可以回答这个问题。您可以使用以下命令来扫描内网192.168.1.0/24网段主机是否存活:
```
for i in {1..254}; do ping -c 1 192.168.1.$i | grep "64 bytes" & done
```
这个命令将ping每个IP地址一次,并在响应中查找“64 bytes”字符串。如果主机存活,则会收到响应。
相关问题
用shell写一个ping192.168.1.0/24网段存活的ip有哪些
可以使用以下命令来实现:
```bash
#!/bin/bash
# 循环遍历192.168.1.0/24网段的IP地址
for ip in {1..254}; do
ping -c 1 -w 1 192.168.1.$ip > /dev/null 2>&1
# 判断是否ping通,如果ping通则输出IP地址
if [ $? -eq 0 ]; then
echo "192.168.1.$ip is up"
fi
done
```
该脚本会循环遍历192.168.1.0/24网段的所有IP地址,并执行ping命令检测是否存活。如果ping通,则输出IP地址。
编写shell小程序,测试一下 192.168.1.0/24整个网段中哪些主机是开机状态,哪些主机是关机状态
可以使用`nmap`工具来扫描整个网段,并检查主机是否开机。以下是一个简单的shell脚本:
```bash
#!/bin/bash
subnet="192.168.1."
for i in {1..254}; do
ip=${subnet}${i}
if ping -c1 -W1 $ip &>/dev/null; then
echo "$ip is up"
else
echo "$ip is down"
fi
done
```
解释一下:
- `subnet="192.168.1."` 定义了要扫描的网段。
- `for i in {1..254}` 循环遍历整个网段中的所有IP地址。
- `ip=${subnet}${i}` 构造当前IP地址。
- `if ping -c1 -W1 $ip &>/dev/null; then` 使用ping命令测试当前主机是否开机,如果返回0,则主机开机,否则主机关机。
- `echo "$ip is up"` 输出开机主机的IP地址。
- `echo "$ip is down"` 输出关机主机的IP地址。
这个脚本会输出所有开机主机的IP地址和所有关机主机的IP地址。
阅读全文