-.-
This commit is contained in:
@@ -1539,7 +1539,7 @@ def get_shop_stats_tracker(shop: str, window_seconds: int = 300) -> LiveStatsTra
|
||||
logger.info(f"Tracker für {shop} hat keine ip_request_details - lade aus Log")
|
||||
_load_initial_request_details(tracker, shop)
|
||||
else:
|
||||
logger.debug(f"Tracker für {shop} hat {len(tracker.ip_request_details)} IPs in ip_request_details")
|
||||
logger.info(f"Tracker für {shop} bereits geladen: {len(tracker.ip_request_details)} IPs in ip_request_details")
|
||||
|
||||
return tracker
|
||||
|
||||
@@ -1652,6 +1652,11 @@ def _load_initial_request_details(tracker: LiveStatsTracker, shop: str, max_line
|
||||
total_requests = sum(len(reqs) for reqs in tracker.ip_request_details.values())
|
||||
logger.info(f"Initiale Request-Details für {shop} geladen: {len(tracker.ip_request_details)} IPs, {total_requests} Requests total (parsed {parsed_count} von {len(lines)} Zeilen)")
|
||||
|
||||
# Debug: Zeige die ersten 5 IPs mit Request-Anzahl
|
||||
sample_ips = list(tracker.ip_request_details.items())[:5]
|
||||
for sample_ip, sample_reqs in sample_ips:
|
||||
logger.info(f" - IP {sample_ip}: {len(sample_reqs)} Requests")
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"Fehler beim Laden der initialen Request-Details für {shop}: {e}")
|
||||
import traceback
|
||||
@@ -4700,26 +4705,43 @@ class JTLWAFiAgent:
|
||||
# WHOIS-Lookup durchführen (wird gecacht)
|
||||
result = whois_lookup(ip)
|
||||
|
||||
# Request-Historie für diese IP sammeln
|
||||
# Request-Historie für diese IP sammeln - IMMER aus allen aktiven Shops
|
||||
# (auch wenn ein spezifischer Shop angegeben ist, könnte die IP in mehreren Shops sein)
|
||||
requests = []
|
||||
shops_to_check = list(get_active_shops())
|
||||
|
||||
# Shops ermitteln - entweder spezifischer Shop oder alle aktiven
|
||||
shops_to_check = []
|
||||
if shop and shop.strip():
|
||||
shops_to_check = [shop]
|
||||
else:
|
||||
# Alle aktiven Shops durchsuchen
|
||||
shops_to_check = list(get_active_shops())
|
||||
|
||||
logger.debug(f"WHOIS für {ip}: Prüfe {len(shops_to_check)} Shops: {shops_to_check}")
|
||||
logger.info(f"WHOIS für {ip}: Prüfe {len(shops_to_check)} Shops: {shops_to_check}")
|
||||
|
||||
for s in shops_to_check:
|
||||
tracker = get_shop_stats_tracker(s)
|
||||
logger.info(f"Shop {s}: Tracker hat {len(tracker.ip_request_details)} IPs in ip_request_details")
|
||||
|
||||
# Debug: Zeige alle IPs im Tracker
|
||||
all_ips = list(tracker.ip_request_details.keys())[:10] # Erste 10
|
||||
logger.info(f"Shop {s}: Erste 10 IPs im Tracker: {all_ips}")
|
||||
|
||||
shop_requests = tracker.get_ip_requests(ip)
|
||||
logger.debug(f"Shop {s}: {len(shop_requests)} Requests für IP {ip}, Tracker hat {len(tracker.ip_request_details)} IPs")
|
||||
|
||||
# Falls keine Requests für diese IP gefunden, versuche nochmal aus Log zu laden
|
||||
# (könnte sein, dass neue Log-Einträge existieren die noch nicht geladen wurden)
|
||||
if not shop_requests:
|
||||
# Prüfe ob Log-File existiert und neuer ist als Tracker-Erstellung
|
||||
log_file = os.path.join(VHOSTS_DIR, s, 'httpdocs', SHOP_LOG_FILE)
|
||||
if os.path.isfile(log_file):
|
||||
logger.info(f"Shop {s}: IP {ip} nicht gefunden - Reload aus Log")
|
||||
_load_initial_request_details(tracker, s)
|
||||
shop_requests = tracker.get_ip_requests(ip)
|
||||
|
||||
if shop_requests:
|
||||
logger.info(f"Shop {s}: {len(shop_requests)} Requests für IP {ip}")
|
||||
else:
|
||||
logger.info(f"Shop {s}: Keine Requests für IP {ip}")
|
||||
|
||||
# Kopie erstellen um Original nicht zu modifizieren
|
||||
for r in shop_requests:
|
||||
r['shop'] = s
|
||||
requests.extend(shop_requests)
|
||||
req_copy = r.copy()
|
||||
req_copy['shop'] = s
|
||||
requests.append(req_copy)
|
||||
|
||||
# Nach Zeit sortieren (neueste zuerst)
|
||||
if requests:
|
||||
|
||||
Reference in New Issue
Block a user