39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
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())))
|
|
|
|
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
|