mirror of
https://github.com/dragonlock2/matthewtran.com.git
synced 2025-10-11 12:07:56 +00:00
45 lines
1.4 KiB
Python
Executable File
45 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import requests
|
|
import time
|
|
from ipaddress import ip_network
|
|
from pathlib import Path
|
|
|
|
if __name__ == "__main__":
|
|
link = Path("discord.txt").read_text()
|
|
|
|
old_ipv4, old_ipv6 = None, None
|
|
while True:
|
|
# get current ips
|
|
try:
|
|
ipv4 = requests.get("https://v4.ident.me").text
|
|
ipv6 = requests.get("https://v6.ident.me").text
|
|
ipv6 = str(ip_network(ipv6 + "/64", strict=False).network_address) # xfinity gives /64
|
|
except Exception as e:
|
|
print("Error while getting IP", e)
|
|
time.sleep(60)
|
|
continue
|
|
|
|
# send message if either changed
|
|
if ipv4 != old_ipv4 or ipv6 != old_ipv6:
|
|
try:
|
|
print(f"IP changed to {ipv4} and {ipv6}")
|
|
resp = requests.post(link, json={
|
|
"content": "\n".join([
|
|
f"old ipv4: {old_ipv4}",
|
|
f"old ipv6: {old_ipv6}",
|
|
f"new ipv4: {ipv4}",
|
|
f"new ipv6: {ipv6}",
|
|
])
|
|
})
|
|
assert(resp.status_code == 204)
|
|
except Exception as e:
|
|
print("Error while sending update", e)
|
|
time.sleep(60)
|
|
continue
|
|
|
|
# retry every hour
|
|
print("Retrying in 1 hour...")
|
|
old_ipv4, old_ipv6 = ipv4, ipv6
|
|
time.sleep(3600)
|