Linuxterminal一次Nmap几个IP

我有一个命令,一次在networking上显示几个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做到这一点与每服务器提到,当给出'列表'时显示。

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

谢谢,

Nmap有一个很好的选项,可以用来传递一个包含在文件中的主机列表。 他们应该是每行一个主机。 你的输出看起来很像nmap的实际输入。 你需要删除第二部分。 你可以用多种方式来做到这一点,例如简单的切割。

  list | cut -d ' ' -f1 

那么你需要让用户输入一个端口。 为此,您可以简单地使用读取功能

  read -e 

整条线。

因为我真的喜欢一个班轮,这里是一切:

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

如果我正确地理解了你的问题,你可以做一些像nmap 10.0.0.10-13 -p22 (或者你从给定列表中提取的任何范围),或者如果你想更好地控制扫描的执行方式,需要使用nmap的脚本界面 ,这使用了Lua 。

对于后者,大多数nmap发行版都有大量的例子。 例如在Ubuntu上,检入/usr/share/nmap/scripts 。 只要grep在该目录中的“线程”(或任何你的系统安装它),你会明白我的意思。 (: