#!/usr/bin/env python3 import time import urllib.request from pathlib import Path from sendgrid import SendGridAPIClient from sendgrid.helpers.mail import Mail if __name__ == '__main__': sg = SendGridAPIClient(Path('sendgrid.key').read_text()) old_ipv4, old_ipv6 = None, None while True: try: ipv4 = urllib.request.urlopen('https://v4.ident.me').read().decode('utf8') # ipv6 = urllib.request.urlopen('https://v6.ident.me').read().decode('utf8') ipv6 = None except Exception as e: print(e) time.sleep(60) continue if ipv4 != old_ipv4 or ipv6 != old_ipv6: msg = Mail( from_email='mtran319@gmail.com', to_emails='mtran319@gmail.com', subject='pls update ip', html_content=f'

ipv4: {ipv4}

ipv6: {ipv6}

' ) try: print(f'IP changed to {ipv4} and {ipv6}') resp = sg.send(msg) except Exception as e: print(e) sg = SendGridAPIClient(Path('sendgrid.key').read_text()) time.sleep(60) continue old_ipv4, old_ipv6 = ipv4, ipv6 time.sleep(3600)