Como obter endereços IP de impressoras através da linha de comando no Linux?

Como obter endereços IP de impressoras através da linha de comando no Linux?

Estou tentando criar um script para obter todos os endereços IP das impressoras sem fio da rede. O problema é que não sei por onde começar, olhei para o CUPS, mas cada documento ou tutorial só vai até certo ponto com a linha de comando antes de passar a usar a interface da web, eles nunca mencionam como encontrar o IP por usando apenas a CLI, alguma ideia?

Responder1

De acordo com issotópico de perguntas e respostas no “Unix & Linux Stack Exchange”você só pode obter uma lista de impressoras instaladas vialpstat -sou usá-lo com sudo( sudo lpstat -s) para obter o caminho completo do dispositivo. Ou talvez usandonmap -A?

Tudo isso dito, talvez usandoarpcomgrepesedencadeados com pipes ( |) podem funcionar assim:

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

Esse comando se divide assim:

  • arp -amostraria todo o tráfego arp.
  • grep Printeranalisará a arp -asaída em busca de linhas que contenham Printero nome.
  • awk '{ print $2 }'pega o endereço IP, mas com parênteses ( (/ )) ao redor deles.
  • sed 's/[()]//g'em seguida, limpa o endereço IP para remover os parênteses.

Dito isso, não tenho uma maneira fácil de testar esse conceito em minha configuração local – já que não tenho nem uma impressora Wi-Fi em minha rede – mas presumo que funcionará. Talvez o grepargumento devesse ser ajustado para “impressoras” ou talvez “impressão”; Eu não tenho certeza. Estas são principalmente ideias de brainstorming que, esperamos, irão ajudá-lo a resolver esse problema ou, pelo menos, colocá-lo no caminho certo.

Responder2

Que tal lpinfo (precisa do CUPS instalado)
(usando Perl aqui para filtrar as outras coisas)
vejaaqui

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

Dispositivo: uri = soquete://192.168.0.3
      classe =
      informações de rede = Officejet série J6400
Dispositivo: uri = soquete://192.168.0.5:9100
      classe =
      informações de rede = HP Officejet Pro 8610

informação relacionada