Skip to content

监测电脑 IP 地址的变化并向指定邮箱发送汇报邮件

Notifications You must be signed in to change notification settings

hzhu212/ip-reporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8220488 · May 28, 2018

History

6 Commits
Sep 13, 2017
Apr 15, 2018
Sep 13, 2017
Apr 15, 2018
Apr 15, 2018
May 28, 2018
Apr 15, 2018
Apr 15, 2018

Repository files navigation

IP Reporter

IP Reporter 是什么?

IP Reporter 是一款监测电脑上 IP 地址变动的小工具,一旦电脑的 IP 地址发生变化,能够向指定的邮箱发送通知邮件。

然而这有什么用呢?请继续阅读~

使用场景

我开发这款小工具的初衷是用于 远程桌面连接

我办公室有台电脑,家里也有台电脑,经常需要从家里远程连接办公室的电脑。如何连接呢?很简单,只要获得办公室电脑的 IP 地址就行了(假设是 114.119.120.100)。我办公室的网络配置比较特殊,没有配备路由器,电脑经由公用的大型交换机直接暴露在外网中,也就是说可以从外部直接访问到 114.119.120.100 这个 IP 地址。

于是,我在家里的电脑上打开远程桌面连接,输入办公室电脑的 IP 地址,连接成功了!到此为止一切正常。

然而问题来了,我办公室的电脑并不能保持 114.119.120.100 这个 IP 地址不变,由于租约到期、电脑重启、停电导致的网络设备重启等原因,这个 IP 地址经常在网段内波动,比如变成 114.119.120.150 等,如此以来,远程桌面就时常连接不上了。

针对这个问题,最简单的解决办法是:请求上级路由器的管理员给我分配一个静态 IP 地址,这样就能一劳永逸了。然而我并没有这个权限,也找不到这个管理员~

索性我就写了这个小工具,让它长期运行在办公室的电脑上,一旦 IP 地址发生变化,就向我发送邮件汇报。如此以来,不管 IP 地址如何变化,我总能在家中得知新的 IP 地址,然后重新配置远程桌面连接,一切又畅通了~

使用方法

环境配置

  1. 安装 Python 环境(Python3.5.x,Python3.6.x 测试通过)

  2. 将 python 目录和 python/Scripts 目录加入系统环境变量 PATH 中(加入用户环境变量不行!)

  3. 安装 Python 的第三方库 pypiwin32,命令为 pip install pypiwin32

  4. python\Lib\site-packages\win32python\Lib\site-packages\pywin32_system32 目录也加入系统环境变量 PATH 中。参见:Can't start Windows service written in Python (win32serviceutil)

  5. 设置发件箱和收件箱:在系统环境变量中添加条目 ipreporter(注意:不是在 PATH 变量内,而是与其并列),其值为 发件箱,发件箱SMTP服务器,发件箱密码,收件箱1,收件箱2,...,如:[email protected],smtp.163.com,654321,[email protected],[email protected]

注意:所使用的发件箱必须先开通 SMTP 服务!

主流的邮件服务商如:163、新浪、qq 等均默认不开通 SMTP 服务!

使用

有 2 种使用方式,一是脚本方式 ip_reporter.py、二是注册为 Windows 服务 ip_reporter_service.py。详情如下:

1. 脚本方式

直接执行 ip_reporter.py 脚本(双击或在 cmd 中打开均可)即可,但在 windows 上最好还是创建一个批处理文件。我们为 ip_reporter.bat 文件创建一个快捷方式,并将它放到 Windows 开始菜单的“启动”目录下,这样脚本就能开机自动启动了。

2. 安装为 Windows 服务

优点:让脚本能够后台运行,且方便开机自启

  1. 以管理员身份打开 cmd,并进入项目目录

  2. 输入命令 py ip_reporter_service.py install 安装服务

  3. 打开服务管理器,已经能看到 IP Reporter Service 这项服务了

    服务管理器的打开方法:按下 <Win>+<R> 组合键,然后输入 services.msc

    服务安装成功

  4. 在该服务的属性中将其设为 自动自动(延迟启动) 即可 mark

  5. 当然,你也可以在 cmd 中完成 2、3、4 步的操作:py ip_reporter_service.py --startup auto install

  6. 启动服务。可以在服务管理器中点击“启动”,也可以使用命令行:py ip_reporter_service.py start

  7. 享受 python 脚本带来的自动化快感吧~

如果要卸载该服务,请使用命令:py ip_reporter_service.py remove

错误排查

由于 IP Reporter 并没有在各种环境下进行充分测试,所以不排除发生错误的可能。

如发生错误,请检查项目下的 log 目录,其中有 3 个日志文件:

  • reporter.log:脚本方式运行时的日志记录
  • service.log:Windows 服务方式运行时的日志记录
  • email.log:两种运行方式下发送的邮件记录

使用愉快~

About

监测电脑 IP 地址的变化并向指定邮箱发送汇报邮件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published