mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
"""Soumission d'un rapport à AbuseIPDB (Phase 4, REPORT_ABUSE) — fonction
|
|
pure, sans effet de bord hors l'appel réseau, appelée directement par
|
|
management/commands/publish_command.py (jamais diffusée en MQTT, voir sa
|
|
docstring pour le pourquoi : un rapport par IP suffit, le diffuser à
|
|
chaque noeud produirait des doublons vus comme du bruit par le service).
|
|
"""
|
|
import requests
|
|
from django.conf import settings
|
|
|
|
ABUSEIPDB_REPORT_URL = 'https://api.abuseipdb.com/api/v2/report'
|
|
|
|
|
|
def submit_report(ip: str, categories: str, comment: str) -> tuple[bool, str]:
|
|
"""POST vers l'API v2 AbuseIPDB. Retourne (succès, detail — message
|
|
d'erreur si échec), jamais d'exception laissée remonter — même forme
|
|
que master_client.py::_banip_via_jail, pour un traitement uniforme
|
|
côté appelant."""
|
|
try:
|
|
response = requests.post(
|
|
ABUSEIPDB_REPORT_URL,
|
|
headers={'Key': settings.ABUSEIPDB_API_KEY, 'Accept': 'application/json'},
|
|
data={'ip': ip, 'categories': categories, 'comment': comment},
|
|
timeout=10,
|
|
)
|
|
response.raise_for_status()
|
|
except requests.RequestException as e:
|
|
return False, str(e)
|
|
return True, ''
|