,l
import random import time from datetime import datetime from collections import Counter import sys # Simulierte Länderliste mit Gewichtung (USA und Russland häufiger) countries = ["USA", "Russia", "Germany", "China", "Brazil", "India", "UK", "France"] weights = [0.3, 0.3, 0.05, 0.05, 0.05, 0.05, 0.1, 0.1] # Zähler für Besucher visitor_log = [] def simulate_visitor(visitor_id): """Simuliert einen Besucher und gibt seine Daten zurück.""" country = random.choices(countries, weights=weights, k=1)[0] timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") visitor = { "id": visitor_id, "country": country, "timestamp": timestamp } visitor_log.append(visitor) return visitor def generate_traffic(target_visitors=500, duration=60): """Generiert simulierte Besucher mit Ziel von 500 pro Minute.""" print(f"Starte Simulation für {target_visitors} Besucher in {duration} Sekunden...") start_time = time.time() visitors_per_second = target_visitors / duration visitor_id = 1 try: while visitor_id <= target_visitors and (time.time() - start_time) < duration: visitor = simulate_visitor(visitor_id) print(f"Besucher #{visitor['id']} aus {visitor['country']} um {visitor['timestamp']}") visitor_id += 1 # Dynamische Pause, um Zielrate zu erreichen time.sleep(1 / visitors_per_second) except KeyboardInterrupt: print("\nSimulation abgebrochen.") # Zusammenfassung print("\nZusammenfassung der Besucher:") country_counts = Counter(visitor["country"] for visitor in visitor_log) for country, count in country_counts.items(): print(f"{country}: {count} Besucher") print(f"Total: {len(visitor_log)} Besucher") print(f"Zeit vergangen: {time.time() - start_time:.2f} Sekunden") def main(): """Hauptfunktion mit Fehlerbehandlung.""" try: target_visitors = 500 duration = 60 # Sekunden if target_visitors <= 0 or duration <= 0: raise ValueError("Zielanzahl oder Dauer muss positiv sein.") generate_traffic(target_visitors, duration) except Exception as e: print(f"Fehler: {e}") sys.exit(1) if __name__ == "__main__": main()
Kommentare
Kommentar veröffentlichen