如何从python调用nikto并以字符串形式返回输出

2024-09-28 01:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这个函数应该调用nikto一个返回它作为字符串的输出,但是它只是永远挂起。我很想知道为什么这不起作用,我已经尽了我所能想的一切。

def nikto(host, *args):
    arguments = ' '.join(args)
    command = 'nikto -host {} {}'.format(host, arguments)
    return commands.getoutput(command)

尼托是什么?在

Nikto是一个开源(GPL)web服务器扫描器,它针对多个项目对web服务器进行全面测试,包括6400多个潜在危险文件/cgi,检查1200多个服务器的过时版本,以及270多个服务器上的特定版本问题。在

尼托是用什么语言写的?在

Perl公司

注:

我也试过os.popen('nikto').read()

我的系统

Linux rwilson-Aspire-E5-521 3.16.0-55-generic#74~14.04.1-Ubuntu SMP 11月17日星期二10:15:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


Tags: 函数字符串版本服务器webformathostlinux
1条回答
网友
1楼 · 发布于 2024-09-28 01:23:50

如果要调用命令并获得其输出,请使用^{}。在

def nikto(host, *args):
    return subprocess.check_output(['nikto', '-host', host] + args)

但是请注意,如果命令的返回代码为非零,则此方法将引发异常,但异常将在其output属性中包含输出。在

如果要同时捕获命令的stderr和stdout,请添加参数stderr=subprocess.STDOUT。在

相关问题 更多 >

    热门问题