背景
- RDP远程家里的
服务器下载机 - 小米路由器重启或者运营商魔法使得外网IP变动
- 小米路由器APP去除了显示外网IP功能
需求描述
- 获取家庭网络公网IP
- 通过邮件发送IP
- 定时监测IP是否变化,如果变化将发送邮件
解决方案
- IP获取:
- 网络上常用方案是通过socket获取本机IP,但在路由器拨号情况下只能获取到192.168.*.*的内网地址,ipconfig同理。
- 通过浏览器访问ip识别类网站会自动显示公网IP。
- 访问并抓取网页,拆分提取IP。
- 此方法跨平台。
- getIP()
- 邮件发送:
- 使用内置smtplib模块
- 写好smtp登录地址端口账号密码,并确认是否SSL(我使用了SSL端口和登录)。
- sendIP(IP)
- 定时监测:
- 线程timer定时启动检查IP是否变动
- checkIP()
完整代码
1 | #coding=utf-8 |
备注
- 没有try&catch和错误判断,因为懒。
- 其实装其他第三方远程控制软件也可,也是因为懒。