Unblock IP address after time expired Flask HTML
Есть код для блокировки IP адреса, мне нужно чтобы я мог временно блокировать IP(на 5 мин, 1 час, день и т.д.). Сейчас я реализовал только постоянную блокировку и можно разблокировать если ввести айпи и нажать Unblock
. По сути, после того, как выбранное из списка время истечет должен запускаться Unblock
, но не получается реализовать. Помогите решить. Спасибо.
python
:
app.route('/firewall-block', methods=['POST'])
def firewall_block():
if request.method == 'POST':
try:
username = 'username'
password = 'password'
ca_cert = 'mypath'
action = request.form['action']
sender_ip = request.form['IP']
user = request.remote_addr
home_dir = os.path.expanduser("/")
log_file_path = os.path.join(home_dir, "logs.txt")
log_entry = f"{session['username']}, {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}, {action.capitalize()}, {sender_ip}\n"
with open(log_file_path, 'a') as log_file:
log_file.write(log_entry)
action = request.form.get('action')
ip = request.form.get('IP')
message_success = "Action performed successfully."
message_failed = "Failed to perform action."
token = getToken(username, password, ca_cert)
if not token:
return "Failed to get token."
if action == "add":
result = sendAction(username, password, ca_cert, ip, "add", token, message_success, message_failed)
elif action == 'remove':
result = sendAction(username, password, ca_cert, ip, "remove", token, message_success, message_failed)
else:
result = "Invalid action."
return result
except Exception as e:
return str(e)
else:
return render_template('firewall.html')
html
:
<form action="/firewall-block" method="post">
<label for="IP">IP Address:</label>
<input type="text" id="IP" name="IP"><br><br>
<label for="duration">Block Duration:</label>
<select id="duration" name="duration">
<option value="5min">5 Minutes</option>
<option value="1hour">1 Hour</option>
<option value="24hours">24 Hours</option>
<option value="3days">3 Days</option>
<option value="1week">1 Week</option>
<option value="permanent">Permanent</option>
</select><br><br>
<input type="submit" name="action" value="Block">
<input type="submit" name="action" value="Unblock">
</form>