Listar todas las impresoras de red (incluidas las no instaladas)

9

Es fácil enumerar las impresoras que ya instaló con este comando:

lpstat -a

Sin embargo, esto no enumera las impresoras de red que NO ha instalado.

nmap buscará todos los puertos abiertos en la LAN, pero la lista producida no se limitará a las impresoras de red:

sudo nmap -sT 192.168.0.1-254

¿Hay un comando que haga lo siguiente:

  1. Detecta la LAN a la que estás conectado automáticamente.
  2. Escanea toda la LAN en busca de impresoras de red específicamente.
  3. Produce una lista de impresoras de red que proporcionan sus nombres de host y direcciones IP.

Por ejemplo, hoy inicié sesión en la interfaz web de la impresora Imagistics fx2100. Tenía una función de "Buscar dispositivo" que era capaz de encontrar todas las impresoras de red en la LAN (vea la captura de pantalla a continuación). Parece que habría un comando en Linux que podría lograr la misma lista e información (sin secuencias de comandos):

ingrese la descripción de la imagen aquí

Lonniebiz
fuente
2
El problema aquí es que el criterio ("Impresora de red") es algo que solo tiene sentido para los humanos. Los programas de computadora no van a tener una idea clara de esa idea. Puede intentar hacer un barrido de red para las direcciones IP que se conectan con éxito en el puerto JetDirect (tcp / 9100). Es probable que la lista esté incompleta en el caso de impresoras que no sean JetDirect, como las impresoras de escritorio compartidas en SMB.
Bratchley
1
Como mencionas, un programa puede escanear los puertos abiertos de cada IP en la LAN e incluso hablar un poco con esos puertos para recopilar datos. Entiendo cómo se puede hacer esto. No conozco ninguna utilidad de línea de comandos que ya lo haga (específicamente para impresoras).
Lonniebiz
1
Puede hacer barridos para encontrar una lista de direcciones IP válidas y usar ncpara verificar que se pueda conectar tcp/9100. Tendría que escribir algo, ya que este es un problema muy específico que está tratando de resolver. Así que dudo que alguien haya escrito una herramienta para hacer esto.
Bratchley

Respuestas:

3

No hay un programa que haga esto específicamente, pero con nmap -A(detección avanzada de host / huella digital) puede ser capaz de identificar la mayoría de las impresoras. Tendrás que filtrarlo después.

Hasta
fuente
11

Si avahi-daemon se está ejecutando, entonces

avahi-browse -a | grep Printer
infoclogged
fuente
Este avahi-browse -acomando parece enumerar las mismas impresoras varias veces e (incluso con el --allargumento) omite la información pertinente que se muestra en la captura de pantalla anterior (como la dirección IP de la impresora que está enumerando). Me sorprende que esta "impresora Imagistics fx2100" contenga firmware que supera a todas las utilidades de Linux que he visto, cuando se trata de enumerar todas las impresoras de todas las marcas (que ni siquiera están instaladas, pero están proporcionando impresión en red).
Lonniebiz