nmap只输出在线机器的IP地址

23 ip nmap

我知道如何使用nmap来查找当前在线的主机列表。我想要做的是获取他们的 IP 地址列表,现在它会显示额外的信息,例如

Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).
Run Code Online (Sandbox Code Playgroud)

我想要的是能够运行nmap命令,获取当前在线的 IP 地址的文本文档。

这是可能吗?

bon*_*ing 46

这是一个常见的:

nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'
Run Code Online (Sandbox Code Playgroud)

选项和命令的快速概述:

  • -n关闭反向名称解析,因为您只需要 IP 地址。在本地 LAN 上,这也可能是最慢的步骤,因此您可以获得良好的速度提升。
  • -sn意思是“不要进行端口扫描”。它与旧的相同,但不推荐-sP使用助记符“ping 扫描”。
  • -oG -“grepable”输出发送到 stdout,然后通过管道传输到awk.
  • /Up$/ 只选择以“Up”结尾的行,代表在线的主机。
  • {print $2} 打印第二个以空格分隔的字段,即 IP 地址。

  • @Michael 这只是一个额外的安全级别,以确保我们不会在其他内容包含字符串“Up”时打印垃圾。这样,即使您针对来自不同类型扫描的文件中的 grepable 输出(例如 `-sV` 可能包含来自网络服务横幅的不可预测的字符串)运行它,它也能正常工作。 (2认同)

jas*_*yan 3

你可以将它通过管道传输到awk

nmap -sP 192.168.1.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'
192.168.1.1
192.168.1.10
192.168.1.20
192.168.1.30
Run Code Online (Sandbox Code Playgroud)