-
Notifications
You must be signed in to change notification settings - Fork 0
/
ip-update.py
81 lines (68 loc) · 1.96 KB
/
ip-update.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import time
import requests
import os, sys, stat
import os.path as path
from tkinter import filedialog
from tkinter import *
url = 'http://checkip.amazonaws.com'
timeout = 1800
config = 'config.txt'
def get_file():
yn = input("Would you like to use the GUI? y/[n]")
if yn.lower() == "y":
if os.name == 'posix':
root = Tk()
root.filename = filedialog.asksaveasfilename(initialdir = "~/",title = "Select file",filetypes = (("text files","*.txt"),("all files","*.*")))
root.destroy()
return root.filename
elif os.name == 'nt':
root = Tk()
root.filename = filedialog.asksaveasfilename(initialdir = "C:/",title = "Select file",filetypes = (("text files","*.txt"),("all files","*.*")))
root.destroy()
return root.filename
else:
root = Tk()
error = Label(toplevel, text="Your OS is unsupported :'(",height=0, width=100).pack()
else:
path = input("Enter the location you'd like to save your IP:\n")
return path
def configuration():
# Create new config
file = ""
if not path.isfile(config):
cfg = open(config, 'w+')
file = get_file()
cfg.write(file)
cfg.close()
else:
# Check config on start
cfg = open(config, 'r')
data = cfg.read()
file = data
cfg.close()
return file
file_path = configuration()
def get_pub_ip():
curr_ip = requests.get(url)
conf = open(file_path, 'r')
old_ip = conf.read()
conf.close()
if curr_ip.text == old_ip:
time.sleep(timeout)
else:
f = open(file_path, 'w+')
f.write(curr_ip.text)
f.close()
def loop():
while True:
print("Running..")
get_pub_ip()
time.sleep(timeout)
def start():
try:
print("IP Updater")
loop()
except KeyboardInterrupt:
print("\nExiting..")
if __name__ == '__main__':
start()