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

Posted

tags:

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

  1. 开启QQ邮箱的smtp服务(自行百度)

  2. 获取IP,发送IP的python代码

    Sudo nano send_ip.py

    Python代码

    //send_ip

    #!\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

    from email.utils import formataddr

     

    #检查网络连通性

    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

     

     

    def sendEmail():

    ret=True

    ipaddr=get_ip_address();

    try:

    msg=MIMEText(ipaddr,‘plain‘,‘utf-8‘)

    msg[‘From‘]=formataddr(["用户名",‘[email protected]‘])

    msg[‘To‘]=formataddr(["收件人",‘[email protected]‘])

    msg[‘Subject‘]="树莓派IP"

    server=smtplib.SMTP_SSL("smtp.qq.com",465)

    server.login("[email protected]","SMTP的授权码")

    server.sendmail(‘[email protected]‘,[‘[email protected]‘,],msg.as_string())

    server.quit()

    print(‘邮件发送成功‘)

    ret=True

    except:

    ret=False

    if __name__ == ‘__main__‘ :

    check_network()

    sendEmail()

    sudo chmod 777 send_ip.py //加权限

  3. 设置开机自启

    1. 制作sh脚本

    sudo nano clientStart.sh

    输入如下脚本内容:

    #!/bin/sh

    cd /home/pi

    sudo python send_ip.py

    (其实就是将程序运行路径与程序执行命令写在了一个脚本里)

    然后按ctrl+x退出,再按Y保存,再按Enter,此时回到了主界面。

     

    1. 修改clientStart.sh的权限

    在主界面里输入以下命令:

     

    sudo chmod 777 /home/pi/track/clientStart.sh

    一定要修改这个权限,否则无法执行

     

    1. 向rc.local添加我们制作的这个脚本,用于开机启动。

    使用命令:

     

    sudo nano /etc/rc.local

    回车后,就进入了rc.local,这时,在exit 0的上一行,写入如下程序:

     

    /home/pi/track/clientStart.sh start

    ctrl+x,再按Y保存,再按Enter,此时,又回到了主界面。

    (上面的步骤,实际上就是将上面制作的脚本添加到rc.local里)

     

    上面的做完后,重启树莓派,send_ip.py就可以自动运行了,以后,只要一通电,它就会自己运行。

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

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

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

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

利用cpolar-内网穿透家中的树莓派,并开机自启动

树莓派设置开机启动脚本

树莓派开机后要求用root用户登录,怎么调会自动进入桌面?