DNS-серверы изменили событие? - PullRequest
0 голосов
/ 19 января 2011

Я пишу приложение .Net 4 для работы в Windows, которое отслеживает, подключен ли ПК в данный момент к определенной внутренней сети.Чтобы определить, существует ли сетевое соединение, я планирую проверить разрешение имен DNS - в случае успеха ПК находится в сети.(Если есть лучший способ, который не слишком загружен сетью, пожалуйста, поделитесь!)Что мне нужно знать, так это то, могу ли я установить обработчик событий (или что-то в этом роде) в моем коде, который срабатывает при изменении серверов поиска DNS на клиентском ПК?Например, если клиент подключается через VPN-клиент, в сетевую среду будут добавлены новые серверы поиска DNS.В ответ мой код должен (повторно) попытаться разрешить имя DNS.Кто-нибудь знает, как настроить такой обработчик событий?Или, если есть лучшее событие для изменения сети, которое нужно отслеживать (например, VPN-соединение, подключенное к сети и т. Д.)?

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Как еще один вариант, рассматривали ли вы возможность использования WMI для подключения к удаленному компьютеру? Если у вас есть права администратора и объекты WMI установлены на удаленном компьютере, это позволит вам проверить ваше соединение. например,

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

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

try
{
   ms.Connect();
}
catch(Exception ex)
{
  // Connection Failure
}
0 голосов
/ 19 января 2011

Я не знаю, чтобы какое-либо конкретное событие .net «срабатывало» при изменении списка DNS. Вы, несомненно, могли бы отслеживать состояние сети и вызывать пользовательское событие, если вы обнаружите какое-либо интересное изменение, тогда вы выполните определенный код в прикрепленном обработчикена это пользовательское событие.Надеюсь, это поможет.

...