2015-10-31 7 views
0

Я хочу использовать API для «Virustotal» для сканирования файлов, я попробовал API-интерфейсы с именем «https://www.virustotal.com/en/documentation/public-api/», но ни один из них не работал для меня. Один из примеров приведен ниже:Общая информация об API

В API-интерфейсах вирусов в файле ASP + Python я получил ошибку. Есть два файла, а именно Filescan.py и postfile.py. При запуске Filescan.py.

Файл FileScan содержит

import sys 
import postfile 
host = "www.virustotal.com" 
selector = "https://www.virustotal.com/vtapi/v2/file/scan" 
fields = [("apikey", "api key")] 
file_to_send = open("my file", "rb").read() 
files = [("file","my file",file_to_send)] 
json = postfile.post_multipart(host, selector, fields, files) 
`enter code here`print (json) 

И postfile.py состоят из

import http.client, mimetypes 
def post_multipart(host, selector, fields, files): 
    content_type, body = encode_multipart_formdata(fields, files) 
    h = http.client.HTTPS(host) 
    h.putrequest('POST', selector) 
    h.putheader('content-type', content_type) 
    h.putheader('content-length', str(len(body))) 
    h.endheaders() 
    h.send(body) 
    errcode, errmsg, headers = h.getreply() 
    return h.file.read() 
def encode_multipart_formdata(fields, files): 
    BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$' 
    CRLF = '\r\n' 
    L = [] 
    for (key, value) in fields: 
     L.append('--' + BOUNDARY) 
     L.append('Content-Disposition: form-data; name="%s"' % key) 
     L.append('') 
     L.append(value) 
    for (key, filename, value) in files: 
     L.append('--' + BOUNDARY) 
     L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)) 
     L.append('Content-Type: %s' % get_content_type(filename)) 
     L.append('') 
     L.append(value) 
    L.append('--' + BOUNDARY + '--') 
    L.append('') 
    body = CRLF.join(str(L)) 
    content_type = 'multipart/form-data; boundary=%s' % BOUNDARY 
    return content_type, body 
def get_content_type(filename): 
    return mimetypes.guess_type(filename)[0] or 'application/octet-stream' 

В то время как я бегу Filescan.py это дает ошибку как «AttributeError: модуль«http.Client 'не имеет атрибута «HTTPS» « Как это решить? Кто-нибудь знает рабочий API для Virustotal в окнах?

+0

Код проводки HTTP является многословным и сложным. Я предлагаю использовать библиотеку запросов, которая делает запись HTTP-клиентов намного проще http://docs.python-requests.org/en/latest/ –

+0

Также в этом вопросе отсутствует полная трассировка ошибок –

ответ

0

установить модуль virus_total_apis, проверьте: https://pypi.python.org/pypi/virustotal-api/

Url образец Сканер:

import virus_total_apis, json 


def online_scan(api_key, target_url): 

    switch_api_key = virus_total_apis.PublicApi(api_key) 

    response = switch_api_key.get_url_report(target_url) 
    raw_data_json = json.dumps(response, sort_keys=True, indent=4) 
    raw_json_dict = json.loads(raw_data_json) 

    return raw_json_dict 

print(online_scan('your_api', 'www.google.com')) 
Смежные вопросы