友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com
本文来自 CDWEN 的投稿。由于树莓派的使用场景中大多数没有配备显示器,那么如何得知树莓派的 IP 地址以便通过 SSH 客户端访问呢?
之前有介绍过一种将树莓派 IP 地址发送到邮箱的实现方式,是通过 mutt 和 msmtp 来实现的。下面将介绍另一种方式,通过 Python 和邮件服务商的 SMTP 服务器来发送带有 IP 信息的邮件。
需要编写两个脚本,Python 邮件发送脚本 mail.py 和获取树莓派 IP 信息的脚本 ip.sh。
mail.py 内容如下:
#!/usr/bin/python #-*- coding:utf-8 -*- import smtplib from email.mime.text import MIMEText import sys mail_host = 'smtp.exmail.qq.com' #smtp地址如果不知可以百度如“163邮箱smtp地址” mail_user = '邮箱账号' #此账号密码是用来给人发送邮件的 mail_pass = '邮箱密码' #此账号密码是用来给人发送邮件的 mail_postfix = 'exmail.qq.com' #邮箱地址,smtp地址删去smtp字符如“163.com” def send_mail(to_list,subject,content): me = mail_user+"<"+mail_user+"@"+mail_postfix+">" msg = MIMEText(content) msg['Subject'] = subject msg['From'] = me msg['to'] = to_list try: s = smtplib.SMTP_SSL() s.connect(mail_host) s.login(mail_user,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() return True except Exception,e: print str(e) return False if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
ip.sh 内容如下:
#!/bin/bash sleep 10 wlan0=`ifconfig wlan0 | head -n2 | grep inet | awk '{print$2}'` eth0=`ifconfig eth0 | head -n2 | grep inet | awk '{print$2}'` if ping -c 2 -W 3 www.baidu.com &> /dev/null ;then /home/pi/mail.py 收件人邮箱地址(不可与mail.py脚本中账号一致) "树莓派已经开机,成功获取到ip地址" "无线网络地址:$wlan0||有线网络地址:$eth0" fi
假设脚本在 /home/pi/ 目录下,给脚本赋予执行权限。
sudo chmod +x /home/pi/ip.sh sudo chmod +x /home/pi/mail.py
将脚本加入开机执行。
sudo vim /etc/rc.local
在 exit 0 之前加入下面一行
sudo /home/pi/ip.sh
重启树莓派,开机后等待一点时间,打开你的邮箱会收到一份树莓派的 IP 地址信息的邮件,知道 IP 之后可以更方便 SSH 连接到树莓派操作或进行 VNC 操作。
标签: raspberrypilevel3配置pythonnetworkipemail
文章来源:
树莓派实验室
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除。
评论列表