由于我的树莓派都是通过wifi进行网络连接。
同时会经常将树莓派挪动位置,且每次重新连接WiFi(不同地方),IP地址都会改变。
那么这里就提供一种解决方案。
在每次树莓派开机并且连接WiFi成功后就发送邮件到QQ邮箱中。
具体操作方式
1、首先开启QQ邮箱的SMTP协议。
进入邮箱点击设置

点击账户

开启服务

开启时需要发送短信,获取授权码,授权码就是密码,要记下来。


2、编写Python脚本mail.py获取IP信息,并发送邮件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import smtplib from email.mime.text import MIMEText from email.utils import formataddr import os
cmd='ifconfig' m=os.popen(cmd) t=m.read() m.close()
my_sender='XXXXX@qq.com' my_pass = 'XXXXXX' my_user='XXXXXXXXX@qq.com'
def mail(): ret=True try: msg=MIMEText(t,'plain','utf-8') msg['From']=formataddr(["FromRunoob",my_sender]) msg['To']=formataddr(["FK",my_user]) msg['Subject']="树莓派IP地址获取" server=smtplib.SMTP("smtp.qq.com", 587) server.login(my_sender, my_pass) server.sendmail(my_sender,[my_user,],msg.as_string()) server.quit() except Exception: ret=False return ret ret=mail() if ret: print("发送邮件成功") else: print("发送邮件失败")
|
3、编写sh脚本ping.sh等待连接wifi成功,执行Python脚本
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/bash
while : do ping -c 2 www.baidu.com &>/dev/null [ $? -eq 0 ] && break done
a=`ifconfig wlan0 | grep broadcast` python3 /root/mail.py "wlan0:$a" echo "ok"
|
4、将两个脚本放置在/root目录下

5、添加开机启动项
在exit 0前面加入
bash /root/ping.sh

6、重启树莓派,测试
测试成功
