Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests, schedule, time
- from datetime import datetime
- def dynamicDNS():
- mydomain = 'domain.com'
- myhostname = "gateway"
- gdapikey = "api_key:key_secret"
- logdest = "local7.info"
- myip = requests.get('https://api.ipify.org').text
- url = f'https://api.godaddy.com/v1/domains/{mydomain}/records/A/{myhostname}'
- headers = {'Authorization': f'sso-key {gdapikey}'}
- gdip = requests.get(url, headers=headers).json()[0]['data']
- print(f'{datetime.now().strftime("%Y-%m-%d %H:%M:%S")} -- Current External IP is {myip}, GoDaddy DNS IP is {gdip}')
- if (gdip != myip and myip != ''):
- print('\nIP address has changed! Updating on GoDaddy')
- url = f'https://api.godaddy.com/v1/domains/{mydomain}/records/A/{myhostname}'
- headers = {'Authorization': (f'sso-key {gdapikey}'), 'Content-Type': 'application/json'}
- data = '[{\"data\": "%s"}]' % myip
- response = requests.put(url, headers=headers, data=data)
- if (response.status_code == 200):
- print(f'Changed IP on {myhostname}.{mydomain} from {gdip} to {myip}')
- else:
- print(f"error, response code: {response.status_code}")
- schedule.every(10).minutes.do(dynamicDNS)
- while True:
- schedule.run_pending()
- time.sleep(1)
Add Comment
Please, Sign In to add comment