48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
from platform import system as system_name  # Returns the system/OS name
 | 
						|
from os import system as system_call  # Execute a shell command
 | 
						|
import time
 | 
						|
 | 
						|
test_ips = ['duckduckgo.com',
 | 
						|
            'cloudflare.com',
 | 
						|
            'google.com',
 | 
						|
            'ya.ru']
 | 
						|
 | 
						|
 | 
						|
try_delay = 0.5
 | 
						|
 | 
						|
def ping(host):
 | 
						|
    """
 | 
						|
    Returns True if host (str) responds to a ping request.
 | 
						|
    Remember that some hosts may not respond to a ping request even if the host name is valid.
 | 
						|
    """
 | 
						|
 | 
						|
    # Ping parameters as function of OS
 | 
						|
    parameters = "-n 1 -w 1000" if system_name().lower().strip() == "windows" else "-c 1 -W 1000"
 | 
						|
 | 
						|
    # Pinging
 | 
						|
    return system_call("ping " + parameters + " " + host) == 0
 | 
						|
 | 
						|
 | 
						|
def wait_for_internet_connection():
 | 
						|
    while True:
 | 
						|
        for ip in test_ips:
 | 
						|
            if ping(ip):
 | 
						|
                return
 | 
						|
            else:
 | 
						|
                print("Could not reach internet. Trying again...")
 | 
						|
                time.sleep(try_delay)
 | 
						|
 | 
						|
 | 
						|
def test_intertnet_connection():
 | 
						|
    for ip in test_ips:
 | 
						|
        if ping(ip):
 | 
						|
            return True
 | 
						|
        else:
 | 
						|
            print("Could not reach internet. Trying another IP...")
 | 
						|
            time.sleep(try_delay)
 | 
						|
    return False
 | 
						|
 | 
						|
#########################################################
 | 
						|
#########################################################
 | 
						|
#########################################################
 |