树莓派通过邮件发送IP地址

xiaoxiao2021-02-27  283

参考文档 http://blog.csdn.net/u013151320/article/details/50251959

查看树莓派IP,若有显示器,直接输入

ifconfig

便可查看 若要用putty连接树莓派,那就需要首先知道树莓派的IP,而树莓派的IP不是固定不变的 那就让树莓派开机自动发送IP地址到指定邮箱

1 首先你需要有两个邮箱,我选择使用我的126邮箱发送邮件到我的qq邮箱 126邮箱作为我的发送邮箱,需要进行授权设置

授权之后,第三方登录就要使用授权码登录

2 新建python脚本

touch send_ip.py

3 编写python脚本 输入命令

sudo vi send_ip.py

写代码

#!\usr\bin\env python #-*-coding: utf-8-*- import socket import time import smtplib import urllib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage #发送邮件的基本函数,参数依次如下 # smtp服务器地址、邮箱用户名,邮箱密码,发件人地址,收件人地址(列表的方式),邮件主题,邮件html内容 def sendEmail(smtpserver,username,password,sender,receiver,subject,msghtml): msgRoot =MIMEMultipart('reklated') msgRoot['To']=','.join(receiver) msgRoot['Subject']= subject msgText = MIMEText(msghtml,'html','utf-8') msgRoot.attach(msgText) smtp = smtplib.SMTP() smtp.connect(smtpserver,"25") smtp.login(username,password) print "YES" smtp.quit() #检查网络连通性 def check_network(): while True: try: result=urllib.urlopen('http://baidu.com').read() print result print "Network is Ready!" break except Exception , e: print e print "Network is not ready,Sleep 5s..." time.sleep(5) return True #获取本级制定接口的ip地址 def get_ip_address(): s =socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.connect(("1.1.1.1",80)) ipaddr=s.getsockname()[0] s.close() return ipaddr if __name__ == '__main__' : check_network() ipaddr= get_ip_address() sendEmail("smtp.126.com",'你的邮箱帐号','你的邮箱密码','发件人地址',['收件人地址'],'IP Address of Raspberry PI',ipaddr)

记住:这里你的邮箱密码即为刚刚的授权码

保存退出 vim编辑器下保存退出步骤为: 按esc然后输入:,然后看到冒号显示出来再输入wq,回车即可

4 设置开机自动执行改脚本 使用root身份

sudo vi /etc/rc.local

在/etc/rc.local文件里加入下面这一行:

/usr/bin/python /home/pi/send_ip.py

注:python后面有空格,一定要注意!!!没有空格开机就执行不了!!! 我用qq邮箱收到的邮件是在垃圾箱内的,记得要到里面查看~

附录:常用vi编辑器命令行 http://www.cnblogs.com/junw_china/articles/1708967.html

转载请注明原文地址: https://www.6miu.com/read-5571.html

最新回复(0)