mailwolt/scripts/clubird-f2b-baninfo

27 lines
629 B
Python

#!/usr/bin/env python3
"""Read ban timing from fail2ban SQLite — called via sudo by www-data."""
import sqlite3, sys, os
if len(sys.argv) < 3:
sys.exit(1)
jail = sys.argv[1]
ip = sys.argv[2]
db = '/var/lib/fail2ban/fail2ban.sqlite3'
if not os.path.isfile(db):
sys.exit(1)
try:
conn = sqlite3.connect(f'file:{db}?mode=ro', uri=True)
cur = conn.execute(
'SELECT timeofban, bantime FROM bans WHERE jail=? AND ip=? ORDER BY timeofban DESC LIMIT 1',
(jail, ip)
)
row = cur.fetchone()
conn.close()
if row:
print(f'{row[0]}|{row[1]}')
except Exception:
sys.exit(1)