linux - 如何让 nmap 不记录已关闭的主机?

标签 linux shell nmap port-scanning

我目前每天使用以下脚本对 16 个不同的/24 运行扫描:

#!/bin/sh
TODAY=`date +"%d-%m-%y"`
OPTIONS="--open --reason -oX /var/log/nmap/XXX/scan-$TODAY.xml -F x.x.x.0/24"
nmap $OPTIONS
rm /var/log/nmap/XXX/yesterday.xml
mv /var/log/nmap/XXX/today.xml /var/log/nmap/XXX/yesterday.xml
ln -s /var/log/nmap/XXX/scan-$TODAY.xml /var/log/nmap/XXX/today.xml

如果我在脚本外运行 nmap 命令并让它输出到控制台,它不会显示任何已关闭的主机,但是当我使用 -oX 标志输出到 xml 文件时,我可以稍后再比较,会列出已关闭的主机。

如何让 nmap 忽略这些主机,不记录它们等?谢谢!

编辑:为了确保我们都在同一页面上,我工作的公司拥有我正在扫描的所有/24。 =)

最佳答案

看起来向下主机列表是设计使然,或者至少,我也无法关闭此功能。

过滤 nmap 的输出以删除不需要的条目是否可以接受?

OPTIONS="--open --reason -oX - -F x.x.x.0/24"
nmap $OPTIONS \
    | sed -e '/<host><status state="down" reason="no-response"\/>/,/<\/host>/d' \
    > /var/log/nmap/XXX/scan-$TODAY.xml

匹配似乎是不贪心的,这是应该的,但要小心并检查一下。

关于linux - 如何让 nmap 不记录已关闭的主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173021/

相关文章:

string - 用于选择具有最新日期且不带子字符串的文件名的 Bash 脚本

mysql - 如何在 mysql 命令行工具中更改目录?

ubuntu - Lua、nmap、sqlite3 和 ubuntu - 找不到模块 'luasql.sqlite3'

c++ - 用于保存客户信息的线程安全数据结构

linux - 更新压缩的 tar 中的单个文件

linux - scp 来自源和目标的多个具有不同名称的文件

linux - Nmap 找不到保存的文本文件

linux - 从 "ps aux --sort -rss "获取 PID 号

linux - shell脚本rsync密码文件选项

linux - 使用 sed 解析 nmap -oG 输出