gpt4 book ai didi

python - 自动更新和发送IP地址

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:18 26 4
gpt4 key购买 nike

我在一台有 ADSL 连接的机器上运行 SSH。我制作了这个脚本,以便在每次机器有新的 IP 地址时向我发送一封电子邮件。

我无法访问该机器。我把脚本给了一个 friend ,所以我无法执行调试来弄清楚这个脚本有什么问题。我现在正在使用大学连接,它有一个静态 IP 地址。在其上运行脚本是没有意义的。

关于如何改进/修复脚本的任何建议。有时我会收到无效的 IP 地址,或者有时 IP 地址会更改但我没有收到电子邮件。我应该为这种自动化使用另一种方法吗?

import urllib
import time
import smtplib

fromaddr = '***@gmail.com'
toaddrs = '***@gmail.com'
ip = ""

username = '****'
password = '****'
f = False

def update():
global ip,f
#print "sleeping 5 seconds"
time.sleep(5)
while not f:
try:
f = urllib.urlopen("http://automation.whatismyip.com/n09230945.asp")
except IOError, e:
print "no internet !"
time.sleep(5)

if not ip and f:
ip = f.read()
print "getting the first ip"
print ip
sendmail(ip)
print "mail sent"

else:
if f:
ip2 = f.read()
#print ip,ip2
if ip != ip2 and ip and ip2:
ip = ip2
print "new ip",ip,"sending mail"
sendmail(ip)
else:
print "ip is the same"
f = False
#print ip

def sendmail(ip):
a = False
while not a:
try:
#just to check if i have internet or not
a = urllib.urlopen("http://automation.whatismyip.com/n09230945.asp")
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.ehlo()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, ip)
server.quit()
except IOError, e:
print "no internet"
time.sleep(5)
#sendmail(ip)


print "program started"

while(1):
update()

最佳答案

我建议您可能访问服务器过于频繁并被阻止... http://forum.whatismyip.com/f14/pace-yourself-t6/

将您的第一个 time.sleep(5) 更改为 time.sleep(300)

关于python - 自动更新和发送IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com