2014-02-08 705 views
0

我需要从文件加载ip列表,扫描它,并创建输出格式,如ip:port。我试过这个:Nmap输出格式ip:端口

nmap -iL mylistwithip.txt -p 80,21 -oG -PS 80,21 | awk '/open/{print $2}' >` output.txt 

但它只给我“开放”,就这样。

虽然我需要从IP地址的列表只打开的端口,例如:

192.168.2.1 
192.168.2.2 
192.168.2.3 
扫描端口后

,样品output.txt

192.168.2.1:80 
192.168.2.1:21 
192.168.2.3:80 

(只扫描IP地址与打开的端口)

回答

-2

快速和丑陋的破解实现:

nmap -vv -iL mylistwithip.txt | grep "Discovered open port" | awk {'print $6":"$4'} | awk -F/ {'print $1'} > output.txt 

随着-vv输出包括像

Discovered open port 22/tcp on 192.168.2.1 
Discovered open port 80/tcp on 192.168.2.1 
Discovered open port 22/tcp on 192.168.2.107 
Discovered open port 80/tcp on 192.168.2.107 

首先awk选择“IP地址”和“端口号/协议”字段,以及第二切断“/协议”行。

这可能会在未来的某些更新nmap中突破。使用-sG(greppable输出)将是一个更好的主意。

+0

我认为这是过量的grep和awk在这里。这可以通过单个awk命令完成,我在这里添加了它。 – RavinderSingh13

0

试试这个AWK oneliner:

nmap -Pn -oG - 192.168.1.1 | awk '/open/{ s = $2; for (i = 5; i <= NF-4; i++) s = substr($i,1,length($i)-4) "\n"; split(s, a, "/"); print $2 ":" a[1]}' 
0

尝试只用单一的awk多了一个解决方案。

nmap -vv -iL file | awk -F'[ /]' '/Discovered open port/{print $NF":"$4}'