обнаружить конфликт IP с помощью C # - PullRequest
1 голос
/ 13 октября 2009

Есть ли способ обнаружить конфликт IP-сообщений? Я буду использовать это в теме в моей программе.

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Если ваша проблема связана с обнаружением окна оповещения о том, что в сети есть дублирующийся IP, я предлагаю вам использовать API для перечисления всех окон и проверки наличия окна оповещения. Вам может помочь инструмент Visual Studio Spy ++, чтобы увидеть характеристики окна.

0 голосов
/ 28 ноября 2017

Вопрос не очень точный и старый, но я все равно его попробую, потому что мне было интересно, что я могу сделать с такими проблемами, так как я пишу приложение, которое манипулирует IP-адресами на ПК для запуска приложений, которые зависят от конкретных адресов. Если у кого-то еще есть тот же вопрос, я предлагаю сначала попытаться избежать любых конфликтов. Дело в том, что установка IP-адреса является административной задачей и должна выполняться только «от руки» людьми, которые знают, что они делают. Если вы устанавливаете IP-адреса с помощью кода, ваша задача как разработчика состоит в том, чтобы проверить, является ли адрес, который нужно установить, действительным и еще не известным в сети.

Первый: запрос DNS, если этот адрес принадлежит хосту, отличному от того, на котором работает приложение

Второе: если DNS не знает об адресе, отправьте запросы Ping на адрес.

См .: Проверка локального IP-адреса

    public static bool IsLocalIpAddress(string host)
    {
    try
    { 
    // get host IP addresses
    IPAddress[] hostIPs = Dns.GetHostAddresses(host);
    // get local IP addresses
    IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

    // test if any host IP equals to any local IP or to localhost
    foreach (IPAddress hostIP in hostIPs)
    {
        // is localhost
        if (IPAddress.IsLoopback(hostIP)) return true;
            // is local address
            foreach (IPAddress localIP in localIPs)
            {
              if (hostIP.Equals(localIP)) return true;
            }
        }
    }
    catch { }
    return false;
}

Если вы хотите «прослушивать» конфликты, WMI и EventLog - это путь. EventLog - это первое место, где возникают такие конфликты, и его легко отслеживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...