【问题标题】:Sending nmap output to a file without also printing it to standard output将 nmap 输出发送到文件而不将其打印到标准输出
【发布时间】:2024-05-17 17:15:02
【问题描述】:

我正在使用以下命令调用nmap

nmap -oX i.xml -p 1-1023 -r -T4 -d -d  

这样做会将输出成功发送到i.xml。但是,文本仍然打印在命令行上,另外被重定向到i.xml。我希望命令在命令行上静默运行,但仍将其所有输出写入我的 i.xml 文件。我尝试使用 -v0 参数,但使用它会导致我的 XML 文件和命令行都看不到任何输出。

如何告诉 nmap 将其输出发送到我的 XML 文件?

【问题讨论】:

    标签: shell arguments nmap


    【解决方案1】:

    您是否尝试过将标准输出重定向到空设备?

    nmap -oX i.xml -p 1-1023 -r -T4 -d -d >/dev/null
    

    在 Windows 上,使用 NUL 而不是 /dev/null

    【讨论】:

    • 我刚刚尝试过。 xml 文件没有生成。
    • 你运行的是什么版本的 Nmap?这应该有效(并且在我的安装中有效)
    • 它也适用于我,您能否提供有关您的操作系统和 nmap 版本的信息?
    • Nmap 版本 5.51 和 Windows 7 64 位。我觉得我还应该提到我使用命令 os.system("nmap -oX i.xml -p 1-1023 -r -T4 -d -d") 通过 python 运行 nmap
    • 抱歉,我假设您使用的是 Linux 或 UNIX。我添加了一条关于如何在 Windows 上引用 null 设备的注释。这应该可以在 Windows 命令行中使用,但是在对 os.system() 的 Python 调用中执行此操作时可能会出现复杂情况,因此如果您仍然没有得到想要的结果,您可能需要使用 Python 的 stdout 重定向选项行为。
    【解决方案2】:

    首先,您没有在命令行上指定任何目标。不确定你打算做什么 其次,-oX i.xml 将输出到 i.xml AND stdout 要仅在 xml 文件(而不是标准输出)上获得结果,请添加额外的 -v0 参数

    【讨论】: