树莓开机发邮件告诉自己ip

Posted AAAron

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓开机发邮件告诉自己ip相关的知识,希望对你有一定的参考价值。

 1 #!/usr/bin/env python
 2 # coding=utf-8
 3 
 4 import smtplib
 5 import urllib
 6 import time
 7 import socket
 8 import struct
 9 import fcntl
10 import array
11 GMAIL_USER = [email protected]
12 GMAIL_PASS = XXXXXX‘       //需要现在163邮箱里面设置授权安全码
13 SMTP_SERVER = smtp.163.com‘    //之前在这里写了错[email protected],好几天都没有查出来。。。
14 #SMTP_PORT = 465
15 SMTP_PORT = 25
16 recipient = [email protected]
17 def checknet():                 //网络连通性
18     for i in range(0,5):
19         try:
20             check = urllib.urlopen(http://baidu.com).read()
21             print check
22             break
23         except :
24             time.sleep(3)
25     else:
26         return False
27     return True
28 
29 def get_ip():
30     SIOCGIFCONF = 0x8912
31     SIOCGIFADDR = 0x8915
32     BYTES = 4096
33     sck = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
34     names = array.array(B,b\0 * BYTES)                 //定义数组
35     bytelen = struct.unpack(iL,fcntl.ioctl(sck.fileno(),SIOCGIFCONF,struct.pack(iL,BYTES,names.buffer_info()[0])))[0]
36     namestr = names.tostring()
37     ifaces = [namestr[i:i+32].split(\0,1)[0] for i in range(0,bytelen,32)]
38     ipList = []
39     for ifname in ifaces:
40         ip = socket.inet_ntoa(fcntl.ioctl(sck.fileno(),SIOCGIFADDR,struct.pack(256s,ifname[:15]))[20:24])
41         ipList.append(ifname+:+ip)
42     return ipList
43 
44 if checknet():
45     try:
46         smtpserver = smtplib.SMTP(SMTP_SERVER,SMTP_PORT)
47         smtpserver.ehlo()
48         smtpserver.starttls()
49         smtpserver.ehlo()
50         smtpserver.login(GMAIL_USER,GMAIL_PASS)
51         header = To:+recipient+\n+From:+GMAIL_USER
52         header = header + \n+ Subject:+ IP+\n
53         ip = \r\n.join(get_ip())
54         msg = header + \n + ip + \n\n
55         smtpserver.sendmail(GMAIL_USER,recipient,msg)
56         smtpserver.close()
57     except:
58         print error for stmp
59 else:
60     print failed

好了,脚本保存为send_ip.py,然后在/etc/rc.local里加上下面这行

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

以上是关于树莓开机发邮件告诉自己ip的主要内容,如果未能解决你的问题,请参考以下文章

远程开机+windows远程桌面

树莓派开机自动发送IP到指定QQ邮箱

vbs代码发送邮件,电脑开机后向手机发短信

vbs代码发送邮件,实现电脑开机后向手机发短信

使用Python发送邮件,在自己程序出错时发邮件通知自己

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