2I想使用nmap在我的网络上获得一个linux服务器的主机列表,但我不知道如何基于多个字符串过滤结果。所以我用的是:
nmap -sT -R --dns-servers 192.168.1.1,192.168.1.2 -p 22 192.168.1.0/24这给了我结果,但当然,它也显示了每一个IP关闭端口。我如何在awk中使用逻辑,以便如果它找到一个带有主机名的IP,并发现下面的行具有“tcp打开”,它就会将这两行吐到输出文件中?
从nmap中使用的典型输入如下:
Interesting ports on server.domain.com (192.168.1.1):
PORT STATE SERVICE
22/tcp open ssh
Interesting ports on server2.domain.com (192.168.1.2):
PORT STATE SERVICE
22/tcp closed ssh但是这是针对每一个被扫描的IP,所以我试图找到一种方法来拥有一个只有主机名和IP的文件,如果它从上面的nmap命令中显示为'tcp‘。基本上是给你一个文件:
server.domain.com (192.168.1.1)因此,只有当SSH实际监听端口22时,我才能获得服务器名和IP。
发布于 2015-09-16 18:20:37
根据示例输入和发布的示例输出,类似这样的内容可以工作:
awk '/^Interesting/ {
domain = $(NF-1)
ip = substr($NF, 0, length($NF) - 1)
}
$2 == "open" {print domain, ip}' file它的工作方式如下:
https://stackoverflow.com/questions/32610926
复制相似问题