使用 nmap 和 awk,显示主机 ip 的所有 http 端口

使用 nmap 和 awk,显示主机 ip 的所有 http 端口

我使用以下命令扫描了网络上的大约 50 台主机:

nmap -sV -iL sweep_ips.txt -oG result.txt  

ex: ...
Host: 192.168.x.x ()    Ports: 8000/open/tcp//http//Apache httpd 2.2.3 ((CentOS))/  Ignored State: filtered (999)
...

我显示了找到 http 端口的 IP 地址:

grep http result.txt | awk '/http/{print $2}'

到目前为止一切顺利。除了 http 端口不总是 80 或 443。我有一些奇怪的端口,如 10000 等。我希望 awk 找到它找到“http”的特定端口字段,然后显示该字段的部分或全部。这可能吗?

就像是:

192.168.x.x 8000

就足够了。

有任何想法吗?

答案1

perl -lane 'print "$F[1] $1" if m{([0-9]*)/open[^,]*/http}'

尝试使用 awk 执行此操作,但它不执行捕获。相反,Perl 的-aswitch 像 awk 一样拆分行,并通过哈希访问子字符串%F。更好的解决方案是考虑单个主机上的多个“http”服务。

相关内容