2014-02-08 46 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}'