Я делаю программу сетевого мониторинга с PHP. Я хочу иметь возможность подключиться к DNS или DHCP-серверу и получить все компьютеры, принадлежащие к сети. В настоящее время я запускаю вложенные для циклов, чтобы пинговать каждый возможный IP-адрес, но для этого требуется более 10 подсетей. Я пытаюсь изменить это, как noob, делать это как босс. Я хочу получить список всех имен компьютеров и IP-адресов, а также если их IP был назначен динамически или статически. Как мне это сделать?Получение информации от сервера DNS или DHCP
0
A
ответ
1
Невозможно перечислить все хосты в сети, даже пинговать все из них недостаточно, поскольку некоторые из них не могут отвечать на ping. Для динамически выделенных вы можете запросить DHCP-сервер, но DHCP в качестве протокола не поддерживает это, вам придется написать процесс демона и запросить журналы или файл назначения.
Если вы действительно хотите это сделать, попробуйте написать небольшую программу, которая запускается в фоновом режиме и пингует все, сохраняя результаты в памяти, а затем запросит ваш запрос на php-скрипт. Таким образом, время отклика будет близким к немедленному. Пока хосты не появляются и слишком часто исчезают (звучит маловероятно), тогда это должно быть хорошо.