将 nmap 重定向到 stdout 而不是将其写入文件

将 nmap 重定向到 stdout 而不是将其写入文件

我正在创建nmap -sn在远程服务器上运行的 python 程序。

有没有办法nmap -oX直接重定向到标准输出或其他通道,而不是将其写入文件?

答案1

是的,通过将连字符作为参数传递给-oX,如下所示:

nmap -oX - <other args> <target>

来自手册页:

这会导致 Nmap 停用交互式输出,而是以您指定的格式将结果打印到标准输出流。因此,命令 nmap -oX - target 将仅将 XML 输出发送到 stdout。严重错误仍可能打印到正常错误流 stderr。

为了避免错误污染您的 XML 输出,您可能需要将流重定向stderr到空设备,2> /dev/null或者如果您希望捕获它的话,重定向到文件。

一般注意事项:像这样使用连字符实际上是POSIX指南(第 12.2 节,指南 13)并广泛应用于各种 *nix 命令,因此当在不同环境中遇到相同问题时,最好记住这一点:

对于使用操作数来表示要打开以进行读取或写入的文件的实用程序,“-”操作数应该仅用于表示标准输入(或当从上下文中可以清楚地指定输出文件时表示标准输出)。

相关内容