Listar todas as impressoras de rede (incluindo as não instaladas)

9

É fácil listar as impressoras que você já instalou com este comando:

lpstat -a

No entanto, isso não lista as impressoras de rede que você NÃO instalou.

O nmap procurará todas as portas abertas na LAN, mas a lista produzida não se limitará às impressoras de rede:

sudo nmap -sT 192.168.0.1-254

Existe um comando que faça o seguinte:

  1. Detecta a LAN à qual você está conectado atualmente automaticamente.
  2. Verifica a LAN inteira procurando especificamente impressoras de rede.
  3. Produz uma lista de impressoras de rede que fornecem nomes de host e endereços IP.

Por exemplo, entrei na interface da web da impressora Imagistics fx2100 hoje. Ele tinha um recurso "Localizar dispositivo" capaz de encontrar todas as impressoras de rede na LAN (veja a captura de tela abaixo). Parece que haveria um comando no Linux que poderia obter a mesma lista e informações (sem scripts):

insira a descrição da imagem aqui

Lonniebiz
fonte
2
O problema aqui é que o critério ("Impressora de rede") é algo que só faz sentido para os seres humanos. Os programas de computador não terão uma noção clara dessa idéia. Você pode tentar fazer uma varredura de rede para endereços IP que se conectam com êxito na porta JetDirect (tcp / 9100). É provável que a lista esteja incompleta no caso de impressoras não JetDirect, como impressoras de mesa compartilhadas por SMB.
precisa saber é o seguinte
1
Como você mencionou, um programa pode verificar portas abertas de cada IP na LAN e até conversar um pouco com essas portas para coletar dados. Eu entendo como isso pode ser feito. Não conheço nenhum utilitário de linha de comando que já faça isso (especificamente para impressoras).
Lonniebiz
1
Você pode fazer varreduras para encontrar uma lista de endereços IP válidos e usar ncpara verificar se ele pode se conectar tcp/9100. Você teria que criar um script, pois esse é um problema muito específico que você está tentando resolver. Então, duvido que alguém tenha escrito uma ferramenta para fazer isso.
Bratchley

Respostas:

3

Não existe um programa que faça isso especificamente, mas com nmap -A(detecção avançada de impressões / impressões digitais) pode ser capaz de identificar a maioria das impressoras. Você terá que filtrá-lo depois.

Até
fonte
11

Se o avahi-daemon estiver em execução,

avahi-browse -a | grep Printer
infoclogged
fonte
Esse avahi-browse -acomando parece listar as mesmas impressoras várias vezes e (mesmo com o --allargumento) deixa de fora as informações pertinentes mostradas na captura de tela acima (como o endereço IP da impressora que está listando). Surpreende-me que esta "impressora Imagistics fx2100" contenha firmware que supera todos os utilitários Linux que eu já vi, quando se trata de listar todas as impressoras de todas as marcas (que nem sequer estão instaladas, mas estão fornecendo impressão em rede).
Lonniebiz