树莓派没有显示器,而不想设置固定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'