37 lines
1.0 KiB
Python
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
|