在单独的行中提取 NMAP 扫描的 IP 地址和端口

Extracting IP address and ports of NMAP scan in seperate lines

我对域进行 nmap 扫描,并希望以以下形式输出 IP 地址和所有打开的端口:

127.0.0.1:22
127.0.0.1:80
127.0.0.1:443

我有以下 bash 脚本

nmap -vv -sV subdomain.domain.tld -oG - |  awk '/open/' | awk '{printf "%s:", ;
  for (i=4;i<=NF;i++) {
    split($i,a,"/");
    if (a[2]=="open") printf ",%s",a[1];}
  print ""}' |
sed -e 's/,//' 

输出如下:

127.0.0.1:22,80,443

我无法将 IP 地址的值传递到 for 循环中,因此我可以每行输出它。我觉得只需要稍微调整一下就能得到我想要的输出。

您已经有了 </code> 的值,您可以使用它打印带有 <code>: 和端口的 ip 值。

我想你可以在最后省略到 sed 的管道,你可以使用一个管道到 awk 从匹配模式 /open/ {

开始
nmap -vv -sV localhost -oG - | awk -v OFS=':' '
/open/ {
  for (i=4;i<=NF;i++) {
    split($i,a,"/");
    if (a[2]=="open") print , a[1]
  }
}'

输出

127.0.0.1:80
127.0.0.1:443
...etc