Nmap输出格式ip:port

时间:2014-02-08 12:38:18

标签: awk nmap

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

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地址)

3 个答案:

答案 0 :(得分: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]}'

答案 1 :(得分:0)

仅使用单个awk尝试一个解决方案。

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

答案 2 :(得分:-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地址”和“端口号/协议”字段,然后第二个切断“/ protocol”。

这可能会在nmap的某些未来更新中中断。使用-sG(greppable output)会更好。