add files
This commit is contained in:
parent
5da4a029ae
commit
fb9d079200
66
autorenewal.py
Executable file
66
autorenewal.py
Executable file
@ -0,0 +1,66 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
import re
|
||||
import json
|
||||
import paramiko
|
||||
from datetime import datetime
|
||||
|
||||
pSsh_host = ''
|
||||
pSsh_port = 22
|
||||
pSsh_user = ''
|
||||
|
||||
HOME_DIR = os.path.dirname(__file__)
|
||||
JSON_FILE = os.path.join(HOME_DIR, "data.json")
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
with open(JSON_FILE, "r") as rawjson:
|
||||
jsonData = json.load(rawjson)
|
||||
|
||||
vIp = newIp(jsonData)
|
||||
print('vIp is: {0}'.format(vIp))
|
||||
if vIp:
|
||||
vTimes = getTimes(jsonData)
|
||||
vCommand = 'iprenew {0} {1:02d}'.format(vIp, vTimes)
|
||||
|
||||
print('comand to send is: {0}'.format(vCommand))
|
||||
|
||||
dnsServer = paramiko.SSHClient()
|
||||
dnsServer.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
dnsServer.connect(hostname=pSsh_host, port=pSsh_port, username=pSsh_user)
|
||||
_ = dnsServer.exec_command(vCommand)
|
||||
dnsServer.close()
|
||||
|
||||
jsonData['lastIp'] = vIp
|
||||
jsonData['times'] = vTimes
|
||||
jsonData['on'] = '{0:%d%m%Y%H%M%S}'.format(datetime.now())
|
||||
|
||||
with open(JSON_FILE, "w") as f:
|
||||
f.write(json.dumps(jsonData))
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def getTimes(pJData):
|
||||
vUpd = datetime.strptime(pJData['on'], '%d%m%Y%H%M%S')
|
||||
|
||||
if datetime.today().date() == vUpd.date():
|
||||
return 1 if pJData['times'] > 98 else pJData['times'] + 1
|
||||
else:
|
||||
return 1
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
def newIp(pJData):
|
||||
raw = os.popen('curl ipinfo.io/ip').read()
|
||||
res = re.search('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', raw)
|
||||
if res.group(0) != pJData['lastIp']:
|
||||
return res.group(0)
|
||||
else:
|
||||
return False
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in New Issue
Block a user