树莓派网络连通后自动发送IP地址到邮箱
树莓派大家经常是在无显示器的情况下使用,有人用固定的IP,但是我觉得还是动态IP不错,可以切换不同的网络环境那无显示器的情况下如何自动获知树莓派的ip呢。我决定采用python来解决
解决步骤
1. 写一个python程序,自动获取当前的ip地址,并发送到一个指定的邮箱
2. 将该python程序定义为网络建立后的一个可执行程序。
首先第一步,写python程序
------------------------sendip.py-------------------------------
#coding=utf-8
'''
Created on 2014-10-15
@author: jasonssd
'''
if __name__ == '__main__':
pass
import smtplib
import subprocess
from email.mime.text import MIMEText
mailto = ['[email protected]']
mail_host="smtp.163.com"
mail_user="your name"
mail_pass="your password"
mail_postfix="163.com"
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain',_charset='gb2312')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
server = smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
def getIpaddress():
body=''
address = subprocess.Popen('ifconfig',shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
lines = address.stdout.readlines()
for line in lines:
body+=line+'\n'
return body
if __name__ == '__main__':
if send_mail(mailto,"hello",getIpaddress()):
print("发送成功")
else:
print("发送失败")
-----------------------------------------------------------------------------
然后到 /etc/network/if-up.d 目录下建立一个脚本,该目录下的脚本会在网络建立以后自动被执行
我建立的叫 sendmail的文件
里面只需要一句即可
python /home/pi/pscript/sendip.py
保存之后
sudo chmod 777 sendmail 加上可执行权限
好了,完成了,把小PI重启一下看看,有没有一封邮件发到你的邮箱?
局域网无外网怎么破?动态IP路由器端口映射怎么破? 命令行 ifconfig eth0 然后 sed 出ip然后 sendmail 命令发邮件,一行搞定了吧... 方法有很多,但是用python应该是最容易实现的 http://2.smsfx.sinaapp.com/send.php?tel=13800138000&pwd=password&aim=13800138000&text=测试字符串
有外网的情况下,可以用这一句发生到自己手机。用飞信的方式。 https://gitcafe.com/BlackLee/PyDDNS/blob/master/PyDDNS.py
参见这个 谢谢分享学习一下 学习一下,言简意赅
公孙林 发表于 2014-11-25 10:26 static/image/common/back.gif
http://2.smsfx.sinaapp.com/send.php?tel=13800138000&pwd=password&aim=13800138000&text=测试字符串
...
里面如何 设置就收号码,发送号码加密码
公孙林 发表于 2014-11-25 10:26 static/image/common/back.gif
http://2.smsfx.sinaapp.com/send.php?tel=13800138000&pwd=password&aim=13800138000&text=测试字符串
...
里面如何 设置就收号码,发送号码加密码。 快乐生活 发表于 2015-4-28 08:12 static/image/common/back.gif
里面如何 设置就收号码,发送号码加密码。
这个好像已经用不了了
页:
[1]