• 18-05-2026, 15:36:10
    #1
    Demin Youtubeye video yüklemem gerekti. Bilgisayar başından ayrılmam gerekti.
    Bu kod sayesinde Ethernet Ağ Bağlantısında dosya upload hızı 3mbps altına düşerse,
    Sistem 10 kere 5 saniye arayla kontrol ediyor. Her seferinde durum aynı olursa,
    10. çalıştırma sonrası kod bilgisayarı kapatıyor.

    # Bu ktüphaneyi yükleyin önce
    #pip install --upgrade psutil
    
    import psutil
    import time
    import os
    from datetime import datetime
    
    # ================== AYARLAR ==================
    
    # Görev yöneticisinde görünen ağ adaptörü adı
    # Örnek: "Ethernet", "Wi-Fi"
    ADAPTER_NAME = "Ethernet"
    
    # Altına düşerse takip başlayacak upload hızı
    LIMIT_MBPS = 3.0
    
    # Kaç saniyede bir kontrol edilecek
    CHECK_INTERVAL = 5
    
    # Kaç kez üst üste düşük kalırsa kapatılacak
    MAX_LOW_CHECKS = 10
    
    # Test için True yaparsan bilgisayarı kapatmaz, sadece yazar
    DRY_RUN = False
    
    # =============================================
    
    
    def get_upload_bytes(adapter_name):
        counters = psutil.net_io_counters(pernic=True)
    
        if adapter_name not in counters:
            print("Ağ adaptörü bulunamadı!")
            print("Mevcut adaptörler:")
            for name in counters.keys():
                print("-", name)
            raise SystemExit
    
        return counters[adapter_name].bytes_sent
    
    
    def calculate_upload_mbps(adapter_name, interval=1):
        first = get_upload_bytes(adapter_name)
        time.sleep(interval)
        second = get_upload_bytes(adapter_name)
    
        bytes_diff = second - first
    
        # byte -> bit -> megabit
        mbps = (bytes_diff * 8) / interval / 1_000_000
    
        return mbps
    
    
    def shutdown_pc():
        print("Bilgisayar kapatılıyor...")
    
        if DRY_RUN:
            print("DRY_RUN açık olduğu için kapatma komutu çalıştırılmadı.")
        else:
            os.system("shutdown /s /t 0")
    
    
    def main():
        print("Upload hız takip botu başladı.")
        print(f"Adaptör: {ADAPTER_NAME}")
        print(f"Limit: {LIMIT_MBPS} Mbps")
        print("-" * 40)
    
        low_count = 0
    
        while True:
            upload_speed = calculate_upload_mbps(ADAPTER_NAME, interval=1)
    
            now = datetime.now().strftime("%H:%M:%S")
            print(f"[{now}] Upload hızı: {upload_speed:.2f} Mbps")
    
            if upload_speed < LIMIT_MBPS:
                low_count += 1
                print(f"Düşük hız tespit edildi: {low_count}/{MAX_LOW_CHECKS}")
    
                if low_count >= MAX_LOW_CHECKS:
                    print(
                        f"Upload hızı {MAX_LOW_CHECKS} kontrol boyunca "
                        f"{LIMIT_MBPS} Mbps altında kaldı."
                    )
                    shutdown_pc()
                    break
    
                time.sleep(CHECK_INTERVAL)
    
            else:
                if low_count > 0:
                    print("Upload hızı tekrar normale döndü. Sayaç sıfırlandı.")
    
                low_count = 0
                time.sleep(CHECK_INTERVAL)
    
    
    if __name__ == "__main__":
        main()
  • 18-05-2026, 15:43:19
    #2
    Bence yararlı bir paylaşım olmuş 🤌