Как я могу использовать C #, чтобы определить, какие IP-адреса в моей локальной сети являются статическими / динамическими? - PullRequest
1 голос
/ 18 марта 2019

Я сканирую IP-адреса в своей локальной сети, и одна из частей, которые я хочу получить при обнаружении IP-адреса - это статический или динамический IP-адрес. Пока что мой самый близкий вопрос, который я нашел, это только адреса, проверяющие вашу собственную машину. Вот моя функция:

    private bool isDynamic()
    {
        NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
        int currentSocketIndex = (new IPPacketInformation()).Interface;

        bool isDynamic = adapters[currentSocketIndex].GetIPProperties().GetIPv4Properties().IsDhcpEnabled;
        return isDynamic;
    }

Я хотел бы изменить это так, чтобы он мог принимать IP-адрес, подключаться к устройству, которому принадлежит IP (если он существует и не блокирует соединение), и определять, является ли этот аппарат IP статический / динамический. На данный момент моя функция проверяет только мою машину.

Может ли кто-нибудь указать мне правильное направление? Я не могу найти ссылки, чтобы сделать что-то подобное, но я сомневаюсь, что это невозможно.

1 Ответ

0 голосов
/ 18 марта 2019

Вы ничего не можете найти по этому поводу, потому что это невозможно, если у вас нет доступа к маршрутизатору.Вы можете найти это, только обратившись к маршрутизатору, который, скорее всего, не скажет вам или не потребует от вас запроса / протокола конкретного маршрутизатора.Или вы можете напрямую спросить устройство, которое не сообщит вам, является ли его IP-адрес статическим или динамическим, если вы не установите на этом компьютере приложение, которое ответит на ваш запрос.Некоторые операционные системы уже могут предоставлять такие услуги (например, WMI в Windows), но вы никогда не сможете определить это для каждого сетевого устройства.

НО:

Если у вас много времени, вы можете прослушать трафик DHCP / BootP и найти такие динамические устройства, потому что динамические устройства часто обновляют свой сеанс

РАЗЛИЧНЫЙ ПОДХОД:

Новая идея, но опасная для реализации в важных сетях, и я ее вообще не рекомендую: запустите свой собственный DHCP-сервер и начните раздавать адреса и посмотреть, кто их принимает, а затем вернуть их обратно.Обратите внимание, что это может вызвать ОГРОМНОЕ количество повреждений, например, в сетях компании.

...