这个函数应该调用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 tue 11月17日10:15:59 UTC 2015 x86_u64 x86_u64 gnu/linux
最佳答案
如果要调用命令并获得其输出,请使用subprocess.check_output
。
def nikto(host, *args):
return subprocess.check_output(['nikto', '-host', host] + args)
但是,请注意,如果命令的返回代码为非零,此方法将引发异常,但异常将在其
output
属性中包含输出。如果要捕获命令的stderr和stdout,请添加参数
stderr=subprocess.STDOUT
。