DNS服务器改变了事件?

时间:2011-01-19 15:50:33

标签: .net events networking dns notifications

我正在编写一个在Windows上运行的.Net 4应用程序,用于监控PC当前是否连接到特定的内部网络。为了确定网络连接是否存在,我计划测试DNS名称解析 - 如果成功,则PC在网络上。 (如果有更好的方式,不要太网络,请分享!)

我需要知道的是,我可以在我的代码中设置一个事件处理程序(或其他东西),当客户端PC的网络DNS查找服务器发生变化时会触发该处理程序吗?例如,如果客户端通过VPN客户端连接,则会将新的DNS查找服务器添加到网络环境中。作为回应,我的代码应该(重新)尝试DNS名称解析
有谁知道如何设置这样的事件处理程序?或者,如果有更好的网络变化事件需要关注(如VPN连接即将上线等)?

2 个答案:

答案 0 :(得分:0)

当DNS列表发生更改时,我不知道任何特定的.net事件被“触发”,如果您检测到任何有趣的更改,则可以确定地监视网络状态并引发自定义事件,然后在您附加的处理程序中执行某些代码到那个自定义事件。希望这会有所帮助。

答案 1 :(得分:0)

作为另一种选择,您是否考虑过使用WMI尝试连接远程计算机?只要您具有管理权限并且远程计算机上安装了WMI对象,就可以测试您的连接。 e.g。

var connection = new ConnectionOptions 
    { Username = "username", Password = "password" }

var ms = new ManagementScope(@"\\RemoteComputerName\root\CIMV2", connection);

try
{
   ms.Connect();
}
catch(Exception ex)
{
  // Connection Failure
}