我需要从文件加载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地址)
答案 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)会更好。