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 -amostraria todo o tráfego arp. -
grep Printeranalisará a saídaarp -adas linhas que têmPrinterno 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.