İnternet bağlantısını sürekli kontrol etmek (dinlemek) mümkün mü?

Merhaba, internet bağlantısını sürekli olarak nasıl dinleyebilirim ?

Örneğin aşağıdaki resimde Wifi simgeleniyor, bağlantı gittiği zaman bu resmin değişmesini sağlamak istiyorum. Ve sanıyorum ki bunun içinde sürekli olarak internet bağlantısını kontrol etmem gerekiyor. Internette "Python Wifi Listener, connection listener " vb tarzında aramalar yaptım ama pek bir şeye rastlamadım desem yeridir. Yardımcı olabilir misiniz lütfen?
123

Merhaba. Bu cevap işinize yarayabilir:

1 Beğeni

Ekrem hocam değerli yanıtınız için teşekkür ederim bende buna benzer yöntem kullanıyorum hatta direkt atayım kullandığım yöntemi

import requests

class ConnectionStatus:

    def internet_on():

        url = "http://www.google.com"

        timeout = 5

        while True:

            try:

                request = requests.get(url, timeout=timeout)

                return True

            except (requests.ConnectionError, requests.Timeout) as exception:

                return False

#TODO: Reporter sayfasındaki wifi simgesi güncel olarak değişmiyor(yani ilk yüklendiğinde işlem görüyor). Bu yüzden sürekli olarak internet bağlantısını dinlemek/kontrol etmek gerekiyor.

Form yüklendiğinde sadece 1 defa geçerli oluyor bu yöntem sonra internet gitsede faydası olmuyor(simge değişmiyor). Burada sanırım algoritma kurma sıkıntısı yaşıyorum, üstesinden bir şekilde geleceğim artık.

Edit : Aslında kullanıcı her işlem yaptığında bir şekilde o kontrolü sağlarım ama oldukça verimsiz bir yöntem olacağı kesin. Bu arada While döngüsünü test amaclı ekledim orjinalde yok :smiley:

Merhaba, bağlantı kontrol etme işini bir thread e emanet edebilirsiniz. Yani internet_on methodunu bir threadde çalıştırabilirsiniz. Bu forumda da threadler ile ilgil bir sürü açılmış konu bulabilirsiniz.

1 Beğeni

import os

ip_list = [‘8.8.8.8’]
for ip in ip_list:
response = os.popen(f"ping {ip}").read()
if “Received = 4” in response:
print(f"UP {ip} Ping Successful")
else:
print(f"DOWN {ip} Ping Unsuccessful")

1 Beğeni