Можно легко перечислить принтеры, которые вы уже установили с помощью этой команды:
lpstat -a
Однако в этом списке нет сетевых принтеров, которые вы НЕ установили.
Nmap проверит все открытые порты в локальной сети, но полученный список не будет ограничен сетевыми принтерами:
sudo nmap -sT 192.168.0.1-254
Есть ли команда, которая делает следующее:
- Определяет локальную сеть, к которой вы сейчас подключены, автоматически.
- Сканирует всю локальную сеть в поисках сетевых принтеров.
- Создает список сетевых принтеров с указанием их имен хостов и IP-адресов.
Например, сегодня я вошел в веб-интерфейс принтера Imagistics fx2100. Он имел функцию «Найти устройство», которая была способна найти все сетевые принтеры в локальной сети (см. Скриншот ниже). Похоже, в Linux была бы команда, которая могла бы получить тот же список и информацию (без сценариев):
command-line
hardware
printing
printer
Lonniebiz
источник
источник
nc
для проверки возможности подключенияtcp/9100
. Вам нужно что-то написать, так как это очень специфическая проблема, которую вы пытаетесь решить. Поэтому я сомневаюсь, что кто-то написал инструмент для этого.Ответы:
Нет программы, которая делает это специально, но с помощью
nmap -A
(расширенного обнаружения хоста / снятия отпечатков пальцев) может быть в состоянии идентифицировать большинство принтеров. Вы должны будете фильтровать это после.источник
Если avahi-демон запущен,
источник
avahi-browse -a
команда, кажется, перечисляет одни и те же принтеры несколько раз и (даже с--all
аргументом) пропускает соответствующую информацию, показанную на снимке экрана выше (например, IP-адрес принтера, который она отображает). Меня удивляет, что этот «принтер Imagistics fx2100» содержит прошивку, которая превосходит все утилиты Linux, которые я видел, когда дело доходит до перечисления всех принтеров всех марок (которые даже не установлены, но обеспечивают сетевую печать).