Come ottenere gli indirizzi IP della stampante tramite la riga di comando in Linux?


2

Sto cercando di creare uno script per ottenere tutto l'indirizzo IP delle stampanti wireless sulla rete. Il problema è che non sono sicuro da dove cominciare Ho cercato il CUPS ma ogni documento o tutorial arriva solo fino alla riga di comando prima di passare all'interfaccia web, non menzionano mai come trovare l'IP usando solo la CLI, qualche idea?

Risposte:


1

Secondo questo thread di domande e risposte su "Unix & amp; Linux Stack Exchange " puoi solo ottenere un elenco di stampanti installate tramite lpstat -s o usandolo con sudo ( sudo lpstat -s ) per ottenere un percorso completo del dispositivo. O forse usando nmap -A?

Detto ciò, forse usando arp con grep e sed incatenato insieme ai tubi ( | ) può funzionare in questo modo:

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

Questo comando si rompe in questo modo:

  • arp -a ti mostrerebbe tutto il traffico arp.
  • grep Printer analizzerà il arp -a uscita per linee che hanno Printer nel nome.
  • awk '{ print $2 }' afferra l'indirizzo IP, ma con parentesi ( ( / ) ) intorno a loro.
  • sed 's/[()]//g' quindi pulisce l'indirizzo IP per rimuovere le parentesi.

Detto questo, non ho un modo semplice per testare questo concetto sulla mia configurazione locale, dal momento che non ho nemmeno una stampante Wi-Fi sulla mia rete, ma presumo che funzionerà. Forse il grep argomento dovrebbe essere regolato su "stampanti" o forse "stampa"; Non lo so per certo. Si tratta principalmente di idee di brainstorming che, auspicabilmente, ti aiuteranno ad affrontare questo problema o almeno a orientarti nel modo giusto.


1

Che ne dici di lpinfo (serve CUPS installato)
(usando Perl qui per filtrare le altre cose)
vedere Qui

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

Dispositivo: uri = socket: //192.168.0.3
class = network
info = serie Officejet J6400
Dispositivo: uri = socket: //192.168.0.5: 9100
class = network
info = HP Officejet Pro 8610

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.