我正在尝试使这个脚本使用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
只有我想要的那些是打开/过滤的 感谢
答案 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}
如果记录有open
或filtered
,请打印第2列。