处理nmap工具外,还可以用什么方法对本实训室的所有IP段的主机进行扫描,主要内容是: (1)、统计活的(在线)主机和不在线的主机,并给出IP地址和主机名称信息; (2)对活的主机,查看主机开启了哪些端口(服务)? 请你编写shell脚本实现自动运维
时间: 2024-11-04 15:13:54 浏览: 35
除了使用nmap工具之外,你可以编写一个简单的Shell脚本来实现这一目标,特别是在Linux环境下。以下是一个基本的bash脚本示例,用于执行这些任务:
```bash
#!/bin/bash
# 设置要扫描的IP范围,例如:192.168.0.0/24
IP_RANGE="192.168.0.0/24"
# 使用nmap获取在线主机及其状态
ONLINE_HOSTS=$(nmap -sn $IP_RANGE | awk '/^Nmap scan report for/{print $5}')
echo "Online Hosts:"
for host in $ONLINE_HOSTS; do
# 获取主机名(假设通过DNS查询)
HOSTNAME=$(dig +short $host)
echo "Host: $host (Name: $HOSTNAME)"
done
echo "\nOffline Hosts:"
OFFLINE_HOSTS=$(nmap -A -oG offline_hosts.txt $IP_RANGE | grep -v "up" | cut -d ' ' -f 5)
echo "$OFFLINE_HOSTS" > offline_hosts.txt
# 对在线主机检查开放的端口和服务
echo "\nPorts and Services on Online Hosts:"
FOR online_host IN $ONLINE_HOSTS; do
nmap -p- $online_host | grep "(open)" > ports_services_$online_host.txt
done
echo "Port/service reports saved to individual files for each online host."
阅读全文