download_speed/download_speed/ping.py

37 lines
1.0 KiB
Python

from download_speed import config, model
import urllib.parse as parse
import ping3
import datetime
def ping():
servers = config.get_servers()
execution_datetime = datetime.datetime.now()
print("Ping at {time}".format(time=execution_datetime))
for server_name in servers:
server = servers[server_name]
url = server["url"]
named_tup = parse.urlparse(url)
netloc = named_tup.netloc
port_loc = netloc.find(":")
if port_loc > 0:
addr = netloc[0:port_loc]
else:
addr = netloc
ping_delay_sum = 0
for i in range(4):
ping_delay_sum += ping3.ping(addr, timeout=5) * 1000 # in millionsecond
ping_delay = ping_delay_sum / 4
print(
"Ping delay for {serv} is {ping_val}".format(
serv=server_name, ping_val=ping_delay
)
)
model.add_ping_record(execution_datetime, server_name, ping_delay)
if __name__ == "__main__":
config.init_config()
ping()
pass