Как получить IP установленного сетевого принтера?

Как получить IP установленного сетевого принтера?

Я установил сетевой принтер на своей машине Ubuntu 14.04 с помощью system-config-printer. Эта программа с графическим интерфейсом предлагает функцию "Найти сетевой принтер", которая исследует локальную сеть. Она возвращает список имен принтеров, связанных с IP-адресами.

Допустим, я выбрал один вариант и успешно его установил.

Теперь, через некоторое время, я понимаю, что тот, который я установил, не тот принтер. Поэтому я повторяю процесс снова, и... о, подождите, есть несколько принтеров одного типа (и имени), с разными IP-адресами!

Ладно, без проблем, давайте просто проверим IP того, что я только что установил, чтобы убедиться, что я не установлю снова неправильный. Итак, вопрос:как узнать IP установленного принтера?

Судя по всему, диалоговое окно «Свойства» (пример ниже) не дает доступа к этой информации (нет, она не скрыта в строке URI).

Никакого успеха не принесло и использование веб-сервера CUPS через http://localhost:631, похоже, что это по сути другой способ получения той же информации.

Редактировать: вопрос не относится к принтеру ниже, а носит более общий характер: поскольку ОС может получить IP-адрес принтера на этапе исследования сети, я предполагаю, что эта информация где-то хранится.Где он хранится и как к нему получить доступ?Или, может быть, он нигде не хранится?

диалог свойств принтера

решение1

Расширяется наРешение @JUH выше...

avahi-browse --all -t -r

Является правильным решением для принтеров с функцией автообнаружения.

К сожалению, многие принтеры просто не раскрывают свой IP-адрес в какой-либо пригодной для использования форме вам, конечному пользователю. Это сделано намеренно.https://www.cups.org/doc/network.html

Большинство сетевых принтеров поддерживают протокол, известный как Bonjour, который представляет собой комбинацию стандартов сетей с нулевой конфигурацией ( ZeroConf), многоадресной DNS ( mDNS) и обнаружения служб DNS ( DNS-SD), опубликованных IETF (Internet Engineering Task Force), той же группой, которая определила TCP/IP и все сетевые технологии, которые мы используем сегодня.

Цитирую страницу mDNS:

Когда клиенту mDNS необходимо разрешить имя хоста, он отправляет сообщение запроса IP multicast, в котором хосту с таким именем предлагается идентифицировать себя. Затем эта целевая машина отправляет сообщение multicast, включающее его IP-адрес. Все машины в этой подсети могут затем использовать эту информацию для обновления своих кэшей mDNS. Любой хост может отказаться от своего требования имени, отправив ответный пакет со временем жизни ( TTL), равным нулю.

Таким образом, чтобы правильно найти IP-адрес принтера mDNS, вам понадобится инструмент, способный читать кэш.

Цитирую один из комментариев ОП:

Спасибо. В моем случае, lpoptionsдействительно показывает много информации, но не IP. Соответствующее поле выглядит как device-uri=hp:/net/hp_LaserJet_2420?zc=HP2420ROOMXXX, так что опять же то же самое, что я получаю от инструментов GUI. Поэтому я предполагаю, что IP не хранится на моей машине...

Это avahi-browseлучший инструмент для работы... (или если вы пришли сюда в поисках утилиты для Mac, Apple предлагает одну под названием dns-sd)

Цитируя страницу Avahi:

Avahi — это система, которая облегчает обнаружение сервисов в локальной сети через набор протоколов mDNS/DNS-SD. Это позволяет вам подключить свой ноутбук или компьютер к сети и мгновенно увидеть других людей, с которыми вы можете общаться, найти принтеры для печати или найти файлы, которыми вы делитесь. Совместимая технология есть в Apple MacOS X (под брендом «Bonjour» и иногда «Zeroconf»).

Avahi в первую очередь ориентирован на системы Linux и поставляется по умолчанию в большинстве дистрибутивов. На данном этапе он не портирован на Windows, но будет работать на многих других системах типа BSD. Основным API является D-Bus, он требуется для использования большинства Avahi, однако службы могут быть опубликованы с использованием определения службы XML, размещенного в /etc/avahi/services.

См. также nss-mdnsпроект, который позволяет выполнять поиск имени хоста для имен хостов *.local через mDNS во всех системных программах с помощью nsswitch.

решение2

С использованиемlpoptions

lpoptions  -p <printer_name> | awk '{for (i=1; i<=NF; i++) {if ($i ~ /device-uri/) {print $i}}}'

Пример

$ 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

Чтобы получить обзорlpinfo

Пример

$ 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

илиnmap

nmap -sT <adress_or_address_range>

и grep сервисprinter

Пример

$ 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

решение3

Согласно Руководству пользователя HP Laserjet серии 2400, IP-адрес доступен на панели управления самого принтера.

введите описание изображения здесь

решение4

Посмотрите наarp-scanкоманда(похоже на ip neigh). Вероятно, вам придется установить его:

sudo apt-get install arp-scan

И более подробно:

sudo arp-scan --interface=eth0 --localnet

Где eth0 — ваше устройство (или wlan0 или wlp2s0). Вы можете найти свое устройство с помощью ifconfigили:

ip -c addr

Или попробуйте установить nmap( sudo apt-get install nmap) и введите nmap, 192.168.1.0/24заменив 192.168.1первые три части вашего IP-адреса (узнайте с помощью ip addr).

Связанный контент