实现一个监控 IP 的 windows 服务
Intro
我们公司的 VPN 用自己的电脑连公司的台式机的时候需要用 IP 地址,有一次尝试去连的时候发现连不上,第二天到公司发现 IP 变掉了,不是之前连的 IP 了,于是就想写一个简单 Windows 服务来监控台式机的 IP 变化
Overview
在 C# 里我们可以使用 Dns.GetHostAddresses()
方法来获取 IP 地址,我们可以每隔一段时间就判断一下当前的 IP 地址,为了方便测试,可以把这个时间定义在配置里,这样本地开发的时候比较方便
为了避免消息太多,我们可以做一个简单的检查,如果 IP 地址不变,就不发消息了,只有当 IP 信息变化的时候再发消息
我们办公使用的是 Google Chat, 所以打算使用 Google Chat 来发消息,也可以根据需要改成自己想用的通知方式
Implement
首先我们可以新建一个 worker 服务,使用 dotnet cli 新建即可
dotnet new worker -n IpMonitor
如果不习惯没有解决方案文件,也可以新建一个解决方案文件并将项目添加到解决方案文件中
-
cd IpMonitor
-
dotnet new sln
-
dotnet sln add ./IpMonitor.csproj
然后我们来改造我们的 Worker
,