簡體   English   中英

如何從python調用nikto並以字符串形式返回輸出

[英]How to call nikto from python and return output as a string

此函數應調用nikto返回它以字符串形式輸出的返回值,而只是永遠掛起。 我很想弄清楚為什么它不起作用,並且我已經盡了一切可能。

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

什么是Nikto?

Nikto是一個開放源代碼(GPL)Web服務器掃描程序,它針對多個項目對Web服務器執行全面測試,包括6400多個潛在危險的文件/ CGI,檢查1200多個服務器的過時版本以及270多個服務器上的特定於版本的問題。

Nikto用什么語言書寫?

Perl的

注意:

我也嘗試過os.popen('nikto').read()

我的系統

Linux rwilson-Aspire-E5-521 3.16.0-55-generic#74〜14.04.1-Ubuntu SMP Tue Nov 17 10:15:59 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux

如果要調用command並獲得其輸出simpy,請使用subprocess.check_output

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

但是請注意,如果命令的返回碼非零,則此方法將引發異常,但該異常將在其output屬性中包含output

如果要捕獲命令的stderr和stdout,請添加參數stderr=subprocess.STDOUT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM