python实现树莓派开机自动发送IP到指定邮箱

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现树莓派开机自动发送IP到指定邮箱相关的知识,希望对你有一定的参考价值。

 1 #!/usr/bin/python
 2 # -*- coding:UTF-8 -*-
 3 #测试发送邮件163邮箱发送到qq邮箱
 4 import smtplib
 5 from email.mime.text import MIMEText
 6 from email.header import Header
 7 from email.utils import formataddr
 8 
 9 msg=MIMEText(请输入内容,plain,utf-8)
10 msg[From]=发送邮箱昵称 <[email protected]>
11 msg[To]=接收邮箱昵称 <[email protected]>
12 #主题(主题不能为test等会被拦截)
13 msg[Subject]=Header(niceday,utf-8)
14 
15 server=smtplib.SMTP()
16 server.connect(smtp.163.com,25)
17 #密码为第三方客户端密码不是登录密码
18 server.login([email protected],密码)
19 server.sendmail([email protected],[email protected],msg.as_string())
20 server.quit()
 1 #-*- coding: utf-8 -*-
 2 #获取树莓派所有网络设备IP
 3 import array
 4 import struct
 5 import socket
 6 import fcntl
 7 
 8 SIOCGIFCONF = 0x8912
 9 SIOCGIFADDR = 0x8915
10 BYTES = 4096         
11 sck = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
12 names = array.array(B,b\0 * BYTES)
13 bytelen = struct.unpack(iL, fcntl.ioctl(sck.fileno(), SIOCGIFCONF, struct.pack(iL, BYTES, names.buffer_info()[0])))[0]
14 namestr = names.tostring()
15 ifaces = [namestr[i:i+32].split(\0, 1)[0] for i in range(0, bytelen, 32)]
16     
17 #再获取每个接口的IP地址
18 iplist = []
19 for ifname in ifaces:
20     ip = socket.inet_ntoa(fcntl.ioctl(sck.fileno(),0x8915,struct.pack(256s,ifname[:15]))[20:24])
21         iplist.append(ifname+:+ip)
22 
23 ip = \r\n.join(iplist)
24 print iplist
 1 #检测网络
 2 import urllib
 3 def check_network():
 4     while True:
 5         try:
 6             result=urllib.urlopen(http://baidu.com).read()
 7             print result
 8             print "Network is Ready!"
 9             break
10         except Exception , e:
11             print e
12             print "Netwofk is not ready,Sleep 5s..."
13             time.sleep(5)
14         return True
15 
16 check_network()

 

以上是关于python实现树莓派开机自动发送IP到指定邮箱的主要内容,如果未能解决你的问题,请参考以下文章

树莓派获取ip地址发送到邮箱

CentOS - 开机自动发送IP到指定邮箱 - smtp.163.com

树莓派设置开机自动运行Python程序

树莓派3代3.5寸触摸屏驱动的安装(通过ssh安装)

树莓派实现开机自动同步网络时间

有没有办法让树莓派开机自动启动热点(没有外网)