使用 check_output 函数从 pythons 子进程模块调用 nmap 不起作用

calling nmap from pythons subprocess module using check_output function is not working

我想使用 python 脚本来使用 nmap。我知道 python-nmap 有一个包。但是我想创建一个简单的脚本来解释 nmap 命令的输出,然后根据它的输出做更多的事情。

尝试像这样使用 check_output("nmap") link 会:

Running shell command from Python and capturing the output

来自 运行 这个 :

sp.check_output(
"nmap",
stderr=sp.STDOUT)

我收到错误:

CalledProcessError: Command 'nmap' returned non-zero exit status 255

该命令适用于 apt-get、ls 和 python。 我认为 nmap 可能是一个已安装的程序,check_output 正在正确的位置搜索它。

nmap 在我的终端上工作。

有什么指点吗?

好的,知道了。 您必须将一些参数传递给 nmap 才能成功执行,并且 'shell' 应该启用。 以下命令有效:

subprocess.check_output("nmap -V", shell=True)