From b3db12ba418462afd94e28171d42d5a9ba11fc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Thu, 5 Feb 2026 12:49:35 +0100 Subject: [PATCH] validurl in api --- ip_analyzer.py | 16 ++++++++++++++++ templates/api.html | 12 ++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ip_analyzer.py b/ip_analyzer.py index 4f21dd3..56c40bb 100644 --- a/ip_analyzer.py +++ b/ip_analyzer.py @@ -445,6 +445,22 @@ def add_header(response): return response +@app.context_processor +def inject_config(): + """Inject configuration variables into templates""" + from flask import request + + def get_base_url(): + # Construct base URL from request + scheme = request.headers.get('X-Forwarded-Proto', request.scheme) + host = request.headers.get('X-Forwarded-Host', request.host) + return f"{scheme}://{host}" + + return dict( + base_url=get_base_url, + request=request + ) + # ============================================================================ # WEB ROUTES # ============================================================================ diff --git a/templates/api.html b/templates/api.html index e57d868..1fe8825 100644 --- a/templates/api.html +++ b/templates/api.html @@ -14,7 +14,7 @@
API Information
-

Base URL: http://localhost:5000

+

Base URL: {{ base_url() }}

Format: JSON

Authentication: None (local use)

@@ -93,7 +93,7 @@
import requests
 
-response = requests.post('http://localhost:5000/api/analyze', 
+response = requests.post('{{ base_url() }}/api/analyze', 
     json={'ips': '1.1.1.1, 8.8.8.8, 9.9.9.9'})
 
 data = response.json()
@@ -123,12 +123,12 @@ for ip_info in data['results']:
                     
import requests
 
 # First, analyze
-analyze_response = requests.post('http://localhost:5000/api/analyze',
+analyze_response = requests.post('{{ base_url() }}/api/analyze',
     json={'ips': 'your IP list...'})
 results = analyze_response.json()['results']
 
 # Then filter
-filter_response = requests.post('http://localhost:5000/api/filter',
+filter_response = requests.post('{{ base_url() }}/api/filter',
     json={
         'results': results,
         'filters': {
@@ -161,7 +161,7 @@ print(f"Filtered: {len(filtered)} IPs")
import requests
 
-response = requests.post('http://localhost:5000/api/export/ipset',
+response = requests.post('{{ base_url() }}/api/export/ipset',
     json={
         'ips': ['1.1.1.1', '8.8.8.8'],
         'timeout': 43200  # 12 hours
@@ -274,7 +274,7 @@ print("Saved to block_ips.sh")
import requests
 
-BASE_URL = 'http://localhost:5000'
+BASE_URL = '{{ base_url() }}'
 
 # 1. Analyze IPs from log file
 with open('/var/log/attacks.log', 'r') as f: