1. 首先,电脑需要有ipv6地址。如果没有的话建议百度,先让电脑拥有ipv6地址(具体地址不需要记下来,第三步中代码会自动获取)。有了ipv6地址就可以不用内网穿透,任何网络都能访问。
2. 此处以QQ邮箱为例,QQ邮箱的发件服务器是smtp.qq.com。在浏览器登录QQ邮箱后,在设置中开启POP3/SMTP服务,如下图所示。然后你会得到一串密码,记下来。
3. 安装python环境,这个很简单,百度有很多教程。然后复制如下python代码,保存为.py文件,把该文件保存在一个自己知道的地方。
这个代码的含义就是获取电脑的ipv6地址,然后通过邮件发送给自己。因为有时候电脑的ipv6地址会变,所以需要自动获取更新,发送到自己邮箱,这样即使地址变化也能远程获取最新地址。
代码中所有xxxxxx都需要按照自己的情况填写,发送邮箱和接收邮箱的地址建议填写同一个QQ邮箱账号,password就是上一步获取的密码,发送者名称、接收者名称、主题随便填就可以。
import socket
import smtplib
from email.mime.text import MIMEText
from email.header import Header
addr = socket.getaddrinfo(socket.gethostname(),port=80)
ip_0 = addr[0][4][0]
ip_1 = addr[1][4][0]
ip_2 = addr[2][4][0]
TEXT = "TIME: " + date + "\n"
TEXT = TEXT + "ipv6: " + ip_0 + "\n" + "ipv6: " + ip_1 + "\n" + "ipv4: " + ip_2
from_addr = "xxxxxxx@qq.com" # 发送邮件的地址
to_addr = "xxxxxxx@qq.com" # 接收邮件的地址
password = "xxxxxxxxxxxxxxx"
smtp_server = 'smtp.qq.com'
msg = MIMEText(TEXT, "plain", "utf-8") # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg['From'] = Header("XXX") # 发送者名称
msg['To'] = Header("XXX") # 接收者名称
subject = "XXXXXXX" # 主题名称
msg['Subject'] = Header(subject, 'utf-8') # 邮件主题
smtpobj = smtplib.SMTP_SSL(smtp_server)
smtpobj.connect(smtp_server, 465)
smtpobj.login(from_addr, password)
smtpobj.sendmail(from_addr, to_addr, msg.as_string())
smtpobj.quit() #Close server
4. 那么这个代码必须双击文件才能运行,人在外地怎么办呢?岂不是没用?当然不是。
利用Windows自带功能:任务计划程序,如下图所示:
在操作-创建任务,根据相关设置,就可以自定义定时运行代码了,比如我设置每天6点和12点自动运行。具体怎么设置百度即可。