使用开放端口nmap的grep IP地址

时间:2014-02-24 01:22:02

标签: bash grep

我正在尝试使这个脚本使用nmap中的开放端口来grep IP地址,但我无法以正确的方式执行此操作。

我有这样的事情:

nmap 192.168.0.0/24 -sU -p 44555 | grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}"  >output.txt

但是这会让所有IP开放和关闭。

示例输出nmap:

Nmap scan report for 79-119-0-248.rdsnet.ro (79.119.0.248)
Host is up (0.033s latency).
PORT      STATE         SERVICE
27023/udp open|filtered unknown

Nmap scan report for 79-119-0-249.rdsnet.ro (79.119.0.249)
Host is up (0.032s latency).
PORT      STATE  SERVICE
27023/udp closed unknown

只有我想要的那些是打开/过滤的 感谢

3 个答案:

答案 0 :(得分:3)

适用于 egrep

nmap 192.168.0.0/24 -sU -p 44555 | grep -B3 open | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"  > output.txt

答案 1 :(得分:0)

如果你想获得打开ip ,你可以尝试以下代码(肯定有效):

nmap 192.168.0.0/24 -sU -p 44555 | grep '^44555.*open' -B3 | grep '^Nmap scan' | cut -d\( -f2 | cut -d\) -f1 > output.txt

答案 2 :(得分:0)

使用awk

nmap 192.168.0.0/24 -sU -p 44555|awk  '/(open|filtered)/{print $2}' RS="Nmap" FS="[)(]"

解释

  • RS="Nmap" - 将工作Nmap设置为记录分隔符变量
  • FS="[)(]"将括号设置为字段分隔符
  • /(open|filtered)/{print $2}如果记录有openfiltered,请打印第2列。