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

2

Estou tentando criar um script para obter todo o endereço IP das impressoras sem fio na rede. O problema é que não sei ao certo por onde comecei. Examinei o CUPS, mas cada documento ou tutorial vai tão longe com a linha de comando antes de passar para a interface web, eles nunca mencionam como encontrar o IP usando apenas o CLI, alguma idéia?

    
por twigg 23.03.2015 / 00:42

2 respostas

1

De acordo com este tópico de perguntas e respostas sobre o "Unix & Linux Stack Exchange ” você só pode obter uma lista de impressoras instaladas através de lpstat -s ou usando-o com sudo ( sudo lpstat -s ) para obter um caminho completo do dispositivo. Ou talvez usando nmap -A ?

Tudo isso dito, talvez usando arp com grep e sed encadeados com pipes ( | ) pode funcionar assim:

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

Esse comando se divide assim:

  • arp -a mostraria todo o tráfego arp.
  • grep Printer analisará a saída arp -a das linhas que têm Printer no 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, pois não tenho uma impressora Wi-Fi na minha rede, mas presumo que funcione. Talvez o argumento grep deva ser ajustado para “impressoras” ou talvez “imprimir”; Eu não sei com certeza. Estas são principalmente ideias de brainstorming que, esperamos, o ajudarão a resolver este problema ou, pelo menos, a colocá-lo no rumo certo.

    
por 23.03.2015 / 01:19
1

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

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

Dispositivo: uri = socket: //192.168.0.3
classe = rede
info = Officejet J6400 series
Dispositivo: uri = socket: //192.168.0.5: 9100
classe = rede
info = HP Officejet Pro 8610

    
por 24.01.2017 / 02:03