import time import requests import sqlite3 from ping3 import ping ip = "1.1.1.1" db_file = "pings.sqlite" con = sqlite3.connect(db_file) cur = con.cursor() # init DB cur.execute("CREATE TABLE IF NOT EXISTS pings (ping REAL, pingcount INT, latitude REAL, longitude REAL, time INT);") prev_latitude, prev_longitude, latitude, longitude = (0, 0, 0, 0) ping_sum = 0 ping_count = 0 prev_sec = 0 sec_now = 0 while True: sec_now = time.localtime().tm_sec if sec_now != prev_sec: ice_status = requests.get("https://iceportal.de/api1/rs/status").json() latitude = ice_status["latitude"] longitude = ice_status["longitude"] if (prev_latitude != latitude or prev_longitude != longitude) and ping_count > 0: print(f"({latitude}, {longitude}): \t {ping_sum / ping_count} Sekunden avg von {ping_count} {'Pings' if ping_count > 1 else 'Ping'}") cur.execute("INSERT INTO pings (ping, pingcount, latitude, longitude, time) VALUES(?, ?, ?, ?, ?);", (ping_sum/ping_count, ping_count, latitude, longitude, int(time.time()))) con.commit() ping_sum = 0 ping_count = 0 prev_latitude, prev_longitude, prev_sec = latitude, longitude, sec_now ping_now = ping(ip, timeout=2) ping_sum += 2 if ping_now is None else ping_now ping_count += 1