mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
First commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""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, ''
|
||||
Reference in New Issue
Block a user