mirror of
https://github.com/TrezOne/docker-mods-uptime-kuma-timeout-fix.git
synced 2026-07-19 09:53:02 -04:00
Added more info to f2b
This commit is contained in:
@@ -4,7 +4,22 @@ import sqlite3
|
|||||||
|
|
||||||
con = sqlite3.connect("/config/fail2ban/fail2ban.sqlite3")
|
con = sqlite3.connect("/config/fail2ban/fail2ban.sqlite3")
|
||||||
cur = con.cursor()
|
cur = con.cursor()
|
||||||
results = cur.execute("SELECT jails.name, COUNT(bans.ip) AS bans FROM jails LEFT JOIN bans ON jails.name=bans.jail GROUP BY jails.name").fetchall()
|
results = cur.execute("""
|
||||||
|
SELECT jails.name,
|
||||||
|
COUNT(bans.ip) AS bans,
|
||||||
|
(SELECT DISTINCT bans.ip from bans where jails.name = bans.jail ORDER BY timeofban DESC) as last_ban,
|
||||||
|
(SELECT DISTINCT bans.data from bans where jails.name = bans.jail ORDER BY timeofban DESC) as data
|
||||||
|
FROM jails
|
||||||
|
LEFT JOIN bans ON jails.name=bans.jail
|
||||||
|
GROUP BY jails.name
|
||||||
|
""").fetchall()
|
||||||
con.close()
|
con.close()
|
||||||
output = json.dumps({k:v for (k,v) in results}, sort_keys=True)
|
formatted_results = [{
|
||||||
|
"name": name,
|
||||||
|
"bans": bans,
|
||||||
|
"last_ban": last_ban,
|
||||||
|
"data": json.dumps(json.loads(data), indent=4, sort_keys=True) if data else None
|
||||||
|
} for (name, bans, last_ban, data) in results]
|
||||||
|
|
||||||
|
output = json.dumps(formatted_results, sort_keys=True)
|
||||||
print(output)
|
print(output)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.status-div {
|
.status-div {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 10px;
|
padding-right: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
padding: 3px;
|
padding-right: 30px;
|
||||||
}
|
}
|
||||||
.green-circle {
|
.green-circle {
|
||||||
padding: 2px 10px;
|
padding: 2px 10px;
|
||||||
@@ -93,9 +93,11 @@
|
|||||||
$jails = json_decode($output, true);
|
$jails = json_decode($output, true);
|
||||||
$status = "";
|
$status = "";
|
||||||
$index = 0;
|
$index = 0;
|
||||||
foreach($jails as $jail=>$bans){
|
foreach($jails as $jail){
|
||||||
$tr_class = ($index % 2 == 0) ? 'shaded' : '';
|
$tr_class = ($index % 2 == 0) ? 'shaded' : '';
|
||||||
$status .= '<tr class="'.$tr_class.'"><td class="left-text"><span class="status-text">'.$jail.'</span></td><td><span class="status-text">'.$bans.'</span></td></tr>';
|
$status .= '<tr class="'.$tr_class.'"><td class="left-text"><span class="status-text">'.$jail["name"].'</span></td>';
|
||||||
|
$status .= '<td><span class="status-text">'.$jail["bans"].'</span></td>';
|
||||||
|
$status .= '<td><span class="status-text" title="'.htmlspecialchars($jail["data"]).'">'.$jail["last_ban"].'</span></td></tr>';
|
||||||
$index++;
|
$index++;
|
||||||
}
|
}
|
||||||
return <<<HTML
|
return <<<HTML
|
||||||
@@ -107,6 +109,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><h3>Jail</h3></td>
|
<td><h3>Jail</h3></td>
|
||||||
<td><h3>Bans</h3></td>
|
<td><h3>Bans</h3></td>
|
||||||
|
<td><h3>Last</h3></td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="tbody-data">
|
<tbody class="tbody-data">
|
||||||
|
|||||||
Reference in New Issue
Block a user