¿Cómo obtener direcciones IP de impresora a través de la línea de comando en Linux?

¿Cómo obtener direcciones IP de impresora a través de la línea de comando en Linux?

Estoy intentando crear un script para obtener todas las direcciones IP de las impresoras inalámbricas en la red. El problema es que no estoy seguro de por dónde empezar. He buscado en CUPS, pero cada documento o tutorial solo llega hasta cierto punto con la línea de comando antes de pasar a usar la interfaz web, nunca mencionan cómo encontrar la IP mediante usando solo la CLI, ¿alguna idea?

Respuesta1

De acuerdo a estoHilo de preguntas y respuestas sobre “Unix & Linux Stack Exchange”sólo puede obtener una lista de impresoras instaladas a través delpstat -so usarlo con sudo( sudo lpstat -s) para obtener una ruta completa del dispositivo. O tal vez usandonmap -A?

Dicho todo esto, tal vez usandoarpcongrepysedencadenados con tuberías ( |) pueden funcionar así:

arp -a | grep Printer | awk '{ print $2 }' | sed 's/[()]//g'

Ese comando se descompone así:

  • arp -ale mostraría todo el tráfico de arp.
  • grep Printeranalizará la arp -asalida en busca de líneas que tengan Printerel nombre.
  • awk '{ print $2 }'toma la dirección IP, pero entre paréntesis ( (/ )) alrededor.
  • sed 's/[()]//g'luego limpia la dirección IP para eliminar los paréntesis.

Dicho esto, no tengo una manera fácil de probar este concepto en mi configuración local, ya que ni siquiera tengo una impresora Wi-Fi en mi red, pero supongo que funcionará. Quizás el grepargumento debería ajustarse a “impresoras” o quizás “imprimir”; No lo sé con seguridad. Se trata principalmente de una lluvia de ideas que, con suerte, le ayudarán a abordar este problema o al menos a orientarle en el camino correcto.

Respuesta2

¿Qué tal lpinfo (necesita instalar CUPS)
(usando Perl aquí para filtrar las otras cosas)
?aquí

$ sudo lpinfo -l -v |  perl -ne 'print if /^Device: uri = socket:/ .. /info/'

Dispositivo: uri = socket://192.168.0.3
      clase =
      información de red = Officejet J6400 series
Dispositivo: uri = socket://192.168.0.5:9100
      clase =
      información de red = HP Officejet Pro 8610

información relacionada