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

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

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

Nmap scan report for 192.168.x.x' and 'Host is up (0.12s latency).

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

这是可能吗?

答案1

这是一种常见的情况:

nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'

选项和命令的快速概述:

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

答案2

你可以将它通过管道传输到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

答案3

此外awk,您还可以使用grep和的组合,cut如下所示:

wolf@linux:~$ nmap -sn -oG - 192.168.0.* | grep Up | cut -d ' ' -f 2
192.168.0.7
192.168.0.8
192.168.0.9
wolf@linux:~$

答案4

GNU版本 7 及更高版本,可以使用选项sort对数字进行更漂亮的排序-V

nmap -n -sn 192.168.0.0/24 -oG - | awk '/Up$/{print $2}' | sort -V
192.168.0.2
192.168.0.3
192.168.0.21
192.168.0.22

相关内容