Я обнаружил исключение ReadTimeout при попытке доступа к API VirusTotal с помощью библиотеки запросов в Python. Интересно, что я могу без проблем получить доступ к VirusTotal через браузер (Chrome), но в Edge получаю сообщение об ошибке тайм-аута. Вот результат трассировки, который я получил:
import requests
import csv
import time
# API keys for VirusTotal and AbuseIPDB
VIRUSTOTAL_API_KEYS = [
'YOUR_VIRUSTOTAL_API_KEY' # Replace with your actual API key
]
ABUSEIPDB_API_KEYS = [
'YOUR_ABUSEIPDB_API_KEY' # Replace with your actual API key
]
# Round-robin index counters
vt_key_index = 0
abuseipdb_key_index = 0
# Function to get the next API key
def get_next_api_key(api_keys, index):
key = api_keys[index % len(api_keys)]
index += 1
return key, index
# Function to query VirusTotal for IP report
def get_ip_report_vt(ip):
global vt_key_index
api_key, vt_key_index = get_next_api_key(VIRUSTOTAL_API_KEYS, vt_key_index)
url = f"https://www.virustotal.com/api/v3/ip_addresses/{ip}"
headers = {"x-apikey": api_key}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # Raises an error for HTTP codes 4xx/5xx
data = response.json()
return data['data']['attributes']['reputation'], data['data']['attributes']['country']
except requests.exceptions.RequestException as e:
print(f"VirusTotal Error for IP {ip}: {e}")
return None, None
# Function to query AbuseIPDB for IP report
def get_ip_report_abuseipdb(ip):
global abuseipdb_key_index
api_key, abuseipdb_key_index = get_next_api_key(ABUSEIPDB_API_KEYS, abuseipdb_key_index)
url = "https://api.abuseipdb.com/api/v2/check"
headers = {'Key': api_key, 'Accept': 'application/json'}
params = {'ipAddress': ip}
try:
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
data = response.json()
return data['data']['abuseConfidenceScore'], data['data']['countryCode']
except requests.exceptions.RequestException as e:
print(f"AbuseIPDB Error for IP {ip}: {e}")
return None, None
# Main function to process IPs
def process_ip_list(input_csv, output_csv):
with open(input_csv, 'r') as infile, open(output_csv, 'w', newline='') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
writer.writerow(['IP', 'VT Score', 'VT Country', 'AbuseIPDB Score', 'AbuseIPDB Country'])
next(reader) # Skip header
for row in reader:
ip = row[0]
vt_score, vt_country = get_ip_report_vt(ip)
abuse_score, abuse_country = get_ip_report_abuseipdb(ip)
writer.writerow([ip, vt_score, vt_country, abuse_score, abuse_country])
time.sleep(1) # Respect rate limits
# Example usage
process_ip_list('ip_list.csv', 'ip_report_list.csv')
Предпринятые действия по устранению неполадок:
Проверьте ключ API: проверено, что мой ключ API действителен и активен. >
Проблемы с сетью:
Я пробовал получить доступ к VirusTotal в разных браузерах, и он отлично работает Chrome, но не Edge, который показывает ERR_TIMED_OUT.
Я выполнил пинг-тест, но в результате получилось сообщение «Тайм-аут запроса истек».
Изменен DNS настройки Google DNS (8.8.8.8 и 8.8.4.4), что позволило Edge получить доступ к VirusTotal, но я по-прежнему сталкиваюсь с той же проблемой тайм-аута в своем коде.
< ol start="3">
[*]Брандмауэр/Прокси: отключите настройки брандмауэра и прокси, и проблема останется.
Дополнительный контекст:
Раньше иногда это работало, а иногда нет. А теперь он просто перестал работать.
API ABUSEIPDB работал, когда я писал код только для ABUSEIPDB.
раньше он переходил на 100 IP, тогда останавливается и показывает ошибку, иногда через некоторое время это работает. но сейчас это просто не сработает. Я использовал ключ различия, потому что у меня закончился запрос 500, и он не сработал.
Есть ли у кого-нибудь предложения по решению этой проблемы, связанной с сетью, или устранению неполадок? дальше?
Я обнаружил исключение ReadTimeout при попытке доступа к API VirusTotal с помощью библиотеки запросов в Python. Интересно, что я могу без проблем получить доступ к VirusTotal через браузер (Chrome), но в Edge получаю сообщение об ошибке тайм-аута. Вот результат трассировки, который я получил: [code]Traceback (most recent call last): ... requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.virustotal.com', port=443): Read timed out. (read timeout=None) [/code] Фрагмент кода: Вот упрощенная версия кода, вызывающего проблему: [code]import requests
# Process IP list def process_ip_list(input_csv_file, output_csv_file): ip = "8.8.8.8" # Example IP vt_score, vt_country, vt_organization = get_ip_report_vt(ip) # Further processing...
process_ip_list("input.csv", "output.csv") [/code] Вот более подробный скрипт: [code]import requests import csv import time
# API keys for VirusTotal and AbuseIPDB VIRUSTOTAL_API_KEYS = [ 'YOUR_VIRUSTOTAL_API_KEY' # Replace with your actual API key ]
ABUSEIPDB_API_KEYS = [ 'YOUR_ABUSEIPDB_API_KEY' # Replace with your actual API key ]
# Round-robin index counters vt_key_index = 0 abuseipdb_key_index = 0
# Function to get the next API key def get_next_api_key(api_keys, index): key = api_keys[index % len(api_keys)] index += 1 return key, index
# Function to query VirusTotal for IP report def get_ip_report_vt(ip): global vt_key_index api_key, vt_key_index = get_next_api_key(VIRUSTOTAL_API_KEYS, vt_key_index)
try: response = requests.get(url, headers=headers) response.raise_for_status() # Raises an error for HTTP codes 4xx/5xx data = response.json() return data['data']['attributes']['reputation'], data['data']['attributes']['country'] except requests.exceptions.RequestException as e: print(f"VirusTotal Error for IP {ip}: {e}") return None, None
# Function to query AbuseIPDB for IP report def get_ip_report_abuseipdb(ip): global abuseipdb_key_index api_key, abuseipdb_key_index = get_next_api_key(ABUSEIPDB_API_KEYS, abuseipdb_key_index)
try: response = requests.get(url, headers=headers, params=params) response.raise_for_status() data = response.json() return data['data']['abuseConfidenceScore'], data['data']['countryCode'] except requests.exceptions.RequestException as e: print(f"AbuseIPDB Error for IP {ip}: {e}") return None, None
# Main function to process IPs def process_ip_list(input_csv, output_csv): with open(input_csv, 'r') as infile, open(output_csv, 'w', newline='') as outfile: reader = csv.reader(infile) writer = csv.writer(outfile) writer.writerow(['IP', 'VT Score', 'VT Country', 'AbuseIPDB Score', 'AbuseIPDB Country'])
next(reader) # Skip header for row in reader: ip = row[0] vt_score, vt_country = get_ip_report_vt(ip) abuse_score, abuse_country = get_ip_report_abuseipdb(ip) writer.writerow([ip, vt_score, vt_country, abuse_score, abuse_country]) time.sleep(1) # Respect rate limits
# Example usage process_ip_list('ip_list.csv', 'ip_report_list.csv') [/code] Предпринятые действия по устранению неполадок: [list] [*]Проверьте ключ API: проверено, что мой ключ API действителен и активен. > [*]Проблемы с сетью: [/list] [list] [*]Я пробовал получить доступ к VirusTotal в разных браузерах, и он отлично работает Chrome, но не Edge, который показывает ERR_TIMED_OUT. [*]Я выполнил пинг-тест, но в результате получилось сообщение «Тайм-аут запроса истек». [*]Изменен DNS настройки Google DNS (8.8.8.8 и 8.8.4.4), что позволило Edge получить доступ к VirusTotal, но я по-прежнему сталкиваюсь с той же проблемой тайм-аута в своем коде. [/list] < ol start="3"> [*]Брандмауэр/Прокси: отключите настройки брандмауэра и прокси, и проблема останется.
Дополнительный контекст: [list] [*]Раньше иногда это работало, а иногда нет. А теперь он просто перестал работать. [*]API ABUSEIPDB работал, когда я писал код только для ABUSEIPDB. [*]раньше он переходил на 100 IP, тогда останавливается и показывает ошибку, иногда через некоторое время это работает. но сейчас это просто не сработает. Я использовал ключ различия, потому что у меня закончился запрос 500, и он не сработал. [/list] Есть ли у кого-нибудь предложения по решению этой проблемы, связанной с сетью, или устранению неполадок? дальше?
Я обнаружил исключение ReadTimeout при попытке доступа к API VirusTotal с помощью библиотеки запросов в Python. Интересно, что я могу без проблем получить доступ к VirusTotal через браузер (Chrome), но в Edge получаю сообщение об ошибке тайм-аута....
Я обнаружил исключение ReadTimeout при попытке доступа к API VirusTotal с помощью библиотеки запросов в Python. Интересно, что я могу без проблем получить доступ к VirusTotal через браузер (Chrome), но в Edge получаю сообщение об ошибке тайм-аута....
Я обнаружил исключение ReadTimeout при попытке доступа к API VirusTotal с помощью библиотеки запросов в Python. Интересно, что я могу без проблем получить доступ к VirusTotal через браузер (Chrome), но в Edge получаю сообщение об ошибке тайм-аута....