Я учился пару месяцев и сейчас пытаюсь сделать вещи более эффективными. Для приведенного ниже кода я также хотел бы отправить электронное письмо, если IP-адрес не изменился с другим телом, например, я попытался добавить отдельный body_text с другим сообщением и попытался создать другую функцию для отправки электронного письма, если IP-адрес не изменился ,
Любые мысли о том, как подойти к этому, были бы полезны, поскольку у меня есть пара других сценариев, с которыми я хотел бы сделать подобные вещи. В конце концов добавим oauth, чтобы сделать более безопасным
from urllib.request import urlopen
import re
import smtplib
from_address = ''
to_address = ''
subject = 'IP'
username = ''
password = ''
url = 'http://checkip.dyndns.org'
print ("Our chosen IP address service is ", url)
request = urlopen(url).read().decode('utf-8')
ourIP = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", request)
ourIP = str(ourIP)
print ("Our IP address is: ", ourIP)
def send_email(ourIP):
# Body of the email
body_text = ourIP + ' is my address'
msg = '\r\n'.join(['To: %s' % to_address, 'From: %s' % from_address, 'Subject: %s' %
subject, '', body_text])
# Send email!
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls() # Our security for transmission of credentials
server.login(username,password)
server.sendmail(from_address, to_address, msg)
server.quit()
print ("Email has been sent!")
# Open text file and extract contents
with open('last_ip.txt', 'rt') as last_ip:
last_ip = last_ip.read() # Read the text file
# Check to see if our IP address has really changed
if last_ip == ourIP:
print("Our IP address has not changed.")
else:
print ("We have a new IP address.")
with open('last_ip.txt', 'wt') as last_ip:
last_ip.write(ourIP)
print ("We have written the new IP address to the text file.")
send_email(ourIP)