qzxia 发表于 2014-10-15 15:16:26

树莓派网络连通后自动发送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重启一下看看,有没有一封邮件发到你的邮箱?


pathletboy 发表于 2014-10-15 15:25:48

局域网无外网怎么破?动态IP路由器端口映射怎么破?

zhujunsan 发表于 2014-10-16 22:20:18

命令行 ifconfig eth0 然后 sed 出ip然后 sendmail 命令发邮件,一行搞定了吧...

qzxia 发表于 2014-10-23 07:57:45

方法有很多,但是用python应该是最容易实现的

公孙林 发表于 2014-11-25 10:26:08

http://2.smsfx.sinaapp.com/send.php?tel=13800138000&pwd=password&aim=13800138000&text=测试字符串

有外网的情况下,可以用这一句发生到自己手机。用飞信的方式。

公孙林 发表于 2014-11-25 10:28:59

https://gitcafe.com/BlackLee/PyDDNS/blob/master/PyDDNS.py

参见这个

suoma 发表于 2015-3-30 21:27:38

谢谢分享学习一下

li23108 发表于 2015-4-19 21:39:03

学习一下,言简意赅

快乐生活 发表于 2015-4-28 08:11:50

公孙林 发表于 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:09

公孙林 发表于 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 10:00:14

快乐生活 发表于 2015-4-28 08:12 static/image/common/back.gif
里面如何 设置就收号码,发送号码加密码。

这个好像已经用不了了
页: [1]
查看完整版本: 树莓派网络连通后自动发送IP地址到邮箱