Instalei uma impressora de rede em minha máquina Ubuntu 14.04 usando system-config-printer
. Este programa GUI oferece a função "Encontrar impressora de rede", que explora a rede local. Ele retorna uma lista de nomes de impressoras, associados a endereços IP.
Então, digamos que eu escolha um e o instale com sucesso.
Agora, depois de um tempo, percebo que a que instalei é a impressora errada. Então faço o processo novamente e... ah, espere, existem várias impressoras do mesmo tipo (e nome), com endereços IP diferentes!
Ok, não tem problema, vamos apenas verificar o IP daquele que acabei de instalar, para ter certeza de não instalar o errado novamente. Então a questão é:como obtenho o IP de uma impressora instalada?
Aparentemente, a caixa de diálogo "propriedades" (exemplo abaixo) não dá acesso a essas informações (não, não está oculto na linha URI).
Nenhum sucesso usando o servidor CUPS através do http://localhost:631
, parece ser basicamente outra maneira de obter as mesmas informações.
Editar: a questão não está relacionada à impressora abaixo, mas é mais geral: como o sistema operacional é capaz de buscar o IP da impressora na etapa de exploração da rede, presumo que as informações estejam armazenadas em algum lugar.Onde está armazenado e como posso acessá-lo?Ou talvez não esteja armazenado em lugar nenhum?
Responder1
Para expandirSolução de @JUH acima...
avahi-browse --all -t -r
É a solução adequada para impressoras de descoberta automática.
Infelizmente, muitas impressoras simplesmente não expõem seus endereços IP de qualquer forma utilizável para você, o usuário final. Isso ocorre intencionalmente.https://www.cups.org/doc/network.html
A maioria das impressoras de rede suporta um protocolo conhecido como Bonjour, que é uma combinação de padrões de rede de configuração zero (
ZeroConf
), DNS multicast (mDNS
) e descoberta de serviço DNS (DNS-SD
) publicados pela Internet Engineering Task Force (IETF), o mesmo grupo que definiu TCP/IP e todas as redes que usamos hoje
Citando a página mDNS:
Quando um cliente mDNS precisa resolver um nome de host, ele envia uma mensagem de consulta IP multicast que solicita que o host que possui esse nome se identifique. Essa máquina de destino então transmite uma mensagem que inclui seu endereço IP. Todas as máquinas nessa sub-rede podem então usar essas informações para atualizar seus caches mDNS. Qualquer host pode renunciar à sua reivindicação de um nome enviando um pacote de resposta com tempo de vida (
TTL
) igual a zero.
Portanto, para encontrar corretamente o endereço IP de uma impressora mDNS, você precisa de uma ferramenta capaz de ler o cache.
Citando um dos comentários do OP:
Obrigado. No meu caso,
lpoptions
mostra muita informação, mas não o IP. O campo em questão se parece comdevice-uri=hp:/net/hp_LaserJet_2420?zc=HP2420ROOMXXX
, novamente, o mesmo que recebo das ferramentas GUI. Então presumo que o IP não esteja armazenado na minha máquina ...
Esta é avahi-browse
a melhor ferramenta para o trabalho... (ou se você chegou aqui procurando um utilitário para Mac, a Apple oferece um chamado dns-sd
)
Citando a página Avahi:
Avahi é um sistema que facilita a descoberta de serviços em uma rede local por meio do conjunto de protocolos mDNS/DNS-SD. Isso permite que você conecte seu laptop ou computador a uma rede e instantaneamente possa ver outras pessoas com quem você pode conversar, encontrar impressoras para imprimir ou encontrar arquivos sendo compartilhados. A tecnologia compatível é encontrada no Apple MacOS X (com a marca "Bonjour" e às vezes "Zeroconf").
Avahi é voltado principalmente para sistemas Linux e é fornecido por padrão na maioria das distribuições. Ele não foi portado para Windows neste estágio, mas será executado em muitos outros sistemas semelhantes ao BSD. A API principal é D-Bus e é necessária para o uso da maior parte do Avahi, no entanto, os serviços podem ser publicados usando uma definição de serviço XML colocada no arquivo
/etc/avahi/services
.Veja também o
nss-mdns
projeto, que permite a pesquisa de nomes de host *.local via mDNS em todos os programas do sistema usando nsswitch
Responder2
Usandolpoptions
lpoptions -p <printer_name> | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'
Exemplo
$ lpoptions -p TOSHIBA_e-STUDIO2330C | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'
device-uri=socket://192.168.20.43
Para obter uma visão gerallpinfo
Exemplo
$ lpinfo -v | grep -P '://'
network dnssd://HP%20LaserJet%201022n._pdl-datastream._tcp.local/
network dnssd://TOSHIBA%20e-STUDIO2540C-07279076._printer._tcp.local/
network socket://192.168.20.201
network socket://192.168.20.203
network socket://192.168.20.204
network socket://192.168.20.205
network socket://192.168.20.206
network socket://192.168.20.207
network socket://192.168.20.43
ounmap
nmap -sT <adress_or_address_range>
e grep o serviçoprinter
Exemplo
$ nmap -sT 192.168.20.43
Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-03 08:38 CEST
Nmap scan report for 192.168.20.43
Host is up (0.0017s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
515/tcp open printer
631/tcp open ipp
8080/tcp open http-proxy
9100/tcp open jetdirect
Responder3
De acordo com o Guia do usuário da HP Laserjet série 2400, o endereço IP está disponível no painel de controle da própria impressora.
Responder4
Olhe para aarp-scan
comando(igual a ip neigh
). Você provavelmente terá que instalá-lo:
sudo apt-get install arp-scan
E para dar mais detalhes:
sudo arp-scan --interface=eth0 --localnet
Onde eth0 é o seu dispositivo (ou wlan0 ou wlp2s0). Você pode encontrar seu dispositivo com ifconfig
ou:
ip -c addr
Ou tente instalar nmap
( sudo apt-get install nmap
) e digite nmap 192.168.1.0/24
substituindo 192.168.1
pelas três primeiras partes do seu endereço IP (descubra usando ip addr
).