极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18088|回复: 10

树莓派网络连通后自动发送IP地址到邮箱

[复制链接]
发表于 2014-10-15 15:16:26 | 显示全部楼层 |阅读模式
树莓派大家经常是在无显示器的情况下使用,有人用固定的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重启一下看看,有没有一封邮件发到你的邮箱?


回复

使用道具 举报

发表于 2014-10-15 15:25:48 | 显示全部楼层
局域网无外网怎么破?动态IP路由器端口映射怎么破?
回复 支持 反对

使用道具 举报

发表于 2014-10-16 22:20:18 | 显示全部楼层
命令行 ifconfig eth0 然后 sed 出ip然后 sendmail 命令发邮件,一行搞定了吧...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-23 07:57:45 | 显示全部楼层
方法有很多,但是用python应该是最容易实现的
回复 支持 反对

使用道具 举报

发表于 2014-11-25 10:26:08 | 显示全部楼层
http://2.smsfx.sinaapp.com/send. ... 800138000&text=测试字符串

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

使用道具 举报

发表于 2014-11-25 10:28:59 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2015-3-30 21:27:38 | 显示全部楼层
谢谢分享学习一下
回复 支持 反对

使用道具 举报

发表于 2015-4-19 21:39:03 | 显示全部楼层
学习一下,言简意赅
回复 支持 反对

使用道具 举报

发表于 2015-4-28 08:11:50 | 显示全部楼层
公孙林 发表于 2014-11-25 10:26
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
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
里面如何 设置就收号码,发送号码加密码。

这个好像已经用不了了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 20:08 , Processed in 0.048212 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表