树莓派没有显示器,而不想设置固定IP,因为要随身携带外出,每个网络环境可能网段不一样。因此想用python写个脚本,让树莓派开机后自动获取本机ip,并且自动发送到我指定邮箱。
功能组成:
get_ip_address.py ,主程序,包含以下三个内容:
get_ip_address():获取所有接口的ip;
ip_save_file():把获取到的ip存入文件(后续想在raspberry pi上通过蓝牙获取ip);
ip_send_mail():把获取的IP发送到指定邮箱。
config.py,邮件账户配置文件
使用说明:
先在config里面设置好收发的邮箱地址和账号信息,以及SMTP服务器地址和端口。
运行环境<=python 2.7
源码:
1. config.py 内容
#!/usr/bin/env python # -*- coding: utf-8 -*- # version <= python 2.7 #__author__ = 'Page Wong' if __name__ == '__main__': print("这是配置文件,不能单独运行") #设置收件邮箱 toaddrs = 'to@mail.com' #设置发送邮箱 fromaddr = 'send@mail.com' #设置发送邮箱的账号密码 username = 'your_sendmail@mail.com' password = 'your_password' #设置SMTP服务器、端口,根据你的邮箱设置, smtp_sever = 'smtp.mail.com:25'
2. get_ip_address.py
#!/usr/bin/env python # -*- coding: utf-8 -*- #version <= python 2.7 #__author__ = 'Page Wong' import array import struct import socket import fcntl from datetime import datetime import smtplib from email.mime.text import MIMEText def get_ip_address(): ''' #获取IP地址功能# ''' #先获取所有网络接口 SIOCGIFCONF = 0x8912 SIOCGIFADDR = 0x8915 BYTES = 4096 sck = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) names = array.array('B',b'