我也有类似的需求,不同的是我用的是有线网自动获取IP的,按上面的同好们的思路我的做法如下:先写一个小程序可以登录到指定邮件服务器发EMAIL(这样的做法可避免被当成垃圾邮件过滤掉),然后再在开机时运行调用它来发送IP地址到指定邮箱,成功通过EMAIL取得IP发。具体步骤如下:
[table=100%,#bfbfbf][/table]
#!/usr/bin/env python
import smtplib
from email.mime.text import MIMEText
import sys
mailto_list=[sys.argv[2]]
mail_host="smtp.163.com"
mail_user="用户名"
mail_pass="密码"
mail_postfix="163.com"
def send_mail(to_list,sub,content):
me=mail_user+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content)
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
if send_mail(mailto_list,"IP is "+sys.argv[1],sys.argv[1]):
print "OK"
else:
print "ERROR"
把mailit.py设为可执行:chmod +x mailit.py
在/etc/rc.local文件内加一行以下内容
/home/pi/mailit.py `ifconfig eth0 | grep 'inet addr:'| cut -d: -f2 | awk '{ print $1}'` www@beebuu.com注:mailit.py中使用的邮件服务器及用户名密码请修改成你自己的,上一行中的eth0是PI的网卡,可按实际修改为无线网卡的名字wlan0;www@beebuu.com是我的邮箱,也请自行修改。 |