我知道如何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