Я пытаюсь разработать способ получения списка принтеров (по крайней мере, имен и IP-адресов) с сервера печати Windows. Я планирую использовать эту информацию на внешнем веб-сайте статуса на PHP, работающем на веб-сервере Linux, который взаимодействует с принтерами по отдельности через SNMP. Связь SNMP уже работает. Мне просто нужен способ динамического создания списка принтеров, с которыми он разговаривает, вместо жесткого кодирования всех имен хостов IP / DNS.
Идея здесь в том, что я делаю это полностью, не касаясь и не меняя серверы печати, принтеры или базовый веб-сервер. Единственное, что находится под моим контролем, — это общая неадминистративная учетная запись CPanel.
Мои исследования до сих пор привели меня к трем потенциальным зацепкам. У меня практически нет опыта ни с одним из них.
1) Команда PHPprinter_list, которая является частью расширения PECL. На данный момент на нашем веб-сервере не установлено это расширение, и я бы предпочел не делать этот запрос, если не уверен, что оно будет работать для моих целей.
2) Linux-команда lpstat, часть CUPS. Я пытался использовать его на странице руководства, и, похоже, он просто сидит и ничего не делает. Я не знаю, связано ли это с тем, что он ожидает ответа CUPS, который, как я полагаю, он не получит от сервера Windows, или это может быть проблема с брандмауэром.
3) Какие-то запросы SMB или WMI. Я понятия не имею, как даже начать с этого.
Хочу попросить совета с чего начать. Это был очень тревожный проект для исследования, потому что 90% результатов поиска касаются людей, желающих печатать. Еще 8% касаются людей, опрашивающих локальную систему для получения информации о принтере. Остальное — черная магия и проприетарные корпоративные решения.
Любые идеи очень ценятся. == Мэтт