Linux终端Nmap一次几个IP

时间:2012-12-15 00:57:50

标签: linux

我有一个命令可以同时在网络上显示几个IP,我们称之为“列表”。当我使用此命令时,它显示以下内容,例如:

10.0.0.10        Server10                            
10.0.0.11        Server11                         
10.0.0.12        Server12                            
10.0.0.13        Server13                            

我想一次Nmap所有这些,但只是使用一个特定的端口,所以基本上是“nmap 10.0.0.10 -p22”,但我想提示用户哪个端口为Nmap,以及Linux要做什么这与所提到的每个服务器在给出'list'时显示。

这可能吗?这需要一个AWK脚本或类似的吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

Nmap确实有一个很好的选项,可用于传递文件中包含的主机列表。它们应该是每行一个主机。您的输出看起来很像nmap的实际输入。您需要删除第二部分。您可以通过多种方式执行此操作,例如使用简单的剪切。

 list | cut -d ' ' -f1

然后你需要让用户输入一个端口。为此,您只需使用读取功能

即可
 read -e 

整条线。

由于我非常喜欢一个班轮,所以这里的所有内容都是一行的:

 port=$(read -e);nmap -iL <(list | cut -d ' ' -f1) -p $port;

答案 1 :(得分:0)

如果我理解你的问题,你可以做nmap 10.0.0.10-13 -p22(或者你从给定列表中提取的任何范围),或者如果你想要更精细地控制扫描的执行方式,你可以我需要使用nmap的scripting interface,它使用Lua

对于后者,大多数nmap发行版中都有一些过多的示例。例如,在Ubuntu上,检查/usr/share/nmap/scripts。只需grep该目录中的'thread'(或者系统安装它的地方),你就会明白我的意思。 (: