Запросы сервера DHCP в C#

Я должен получить отображение MAC к IP, сохраненному на сервере DHCP, или через программу, работающую на самом сервере или предпочтительно через программу, работающую на одном из клиентов DHCP.

Я понимаю, что netsh утилита может использоваться для получения дампа однако, я не имел большого успеха с этим.

Какие-либо рабочие примеры или подсказка на этом?

У меня есть права администратора на сервере DHCP

Править

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

Я уверен, что сервер DHCP хранит отображение MAC к IP, как я могу использовать ту информацию, для отображения MAC на IP-адрес?

8
задан bzlm 11 February 2010 в 08:32
поделиться

2 ответа

Можно ли с помощью arp -a сделать трюк ... на моей машине я получаю следующий результат:

У меня есть mac / ip-адрес заменен поддельными значениями для отображения результатов ...

C:\Documents and Settings\Tom>arp -a

Interface: 10.203.24.196 --- 0xf0007
  Internet Address      Physical Address      Type
  10.203.24.198         02-50-f3-10-14-06     dynamic

C:\Documents and Settings\Tom>

Выполняя шеллинг с использованием System.Diagnostics.Process , вы можете перенаправить вывод во входной поток и читать из него ...

Надеюсь, это поможет, С уважением, Том.

0
ответ дан 5 December 2019 в 23:15
поделиться

Для этого можно использовать компонент DHCP Objects из Windows 2000 Resource Kit . Несмотря на то, что компонент трудно найти, он создан для Windows 2000, в июле 2010 года, по данным Microsoft, перестает поддерживать жизнь и имеет очень мало документации, он действительно работает.

  1. Загрузите инструмент Resource Kit Tool с именем DHCP Objects , например, здесь , если вы не можете найти его в Microsoft. Это даст вам файл .exe, который, в свою очередь, установит компонент DHCP Objects.
  2. Зарегистрируйте файл DHCPOBJS.DLL в regsvr32 или создайте для него приложение COM +. Что применимо, зависит от того, как компонент COM будет использоваться в вашей системе.
  3. Используйте программу импорта библиотеки типов tlbimp.exe , чтобы создать управляемую оболочку вокруг DHCPOBJS.DLL теперь, когда он зарегистрирован в системе.
  4. В Visual Studio добавьте ссылку на управляемую оболочку. Его имя по умолчанию - DhcpObjects.dll .

Теперь вы можете написать такой код для компонента:

using DhcpObjects;
class Program {
    static void Main(string[] args) {
        var manager = new Manager();
        var server = dhcpmgr.Servers.Connect("1.2.3.4");
        // query server here
    }
}

Программа установки также предоставляет файл справки Windows, который содержит дополнительную документацию о том, как запрашивать и управлять DHCP-сервером. Раздел «Объектная модель» очень полезен.

4
ответ дан 5 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: