Як отримати IP-адреси принтера за допомогою командного рядка в Linux?


2

Я намагаюся створити сценарій, щоб отримати всю IP-адресу бездротових принтерів у мережі. Проблема полягає в тому, що я не впевнений, з чого почати. ​​Я заглянув у CUPS, але кожен документ чи підручник надходять далеко за допомогою командного рядка, перш ніж він перейде до використання веб-інтерфейсу, вони ніколи не згадують, як знайти IP використовуючи просто CLI, якісь ідеї?

Відповіді:


1

Відповідно до цього питання та відповідей на “Unix & Linux Stack Exchange”, ви можете отримати лише список встановлених принтерів через lpstat -sабо за допомогою sudo( sudo lpstat -s) для отримання повного шляху до пристрою. А може, використовуючи nmap -A?

Все , що сказав, можливо , використовуючи arpз grepі sedприкутий разом з трубами ( |) може працювати в такий спосіб:

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

Ця команда розпадається так:

  • arp -a показав би вам весь арп-трафік.
  • grep Printerбуде аналізувати arp -aвихід для рядків, що містять Printerім'я.
  • awk '{ print $2 }'захоплює IP-адресу, але з дужками ( (/ )) навколо них.
  • sed 's/[()]//g' потім очищає IP-адресу, щоб видалити дужки.

Це означає, що у мене немає простого способу перевірити цю концепцію на моїх локальних налаштуваннях - оскільки у мене навіть немає одного Wi-Fi принтера в моїй мережі - але я припускаю, що це буде працювати. Можливо, grepаргумент слід налаштувати на «принтери» або, можливо, «надрукувати»; Я не знаю точно. Це в основному ідеї мозкового штурму, які, сподіваємось, допоможуть вам вирішити цю проблему або принаймні встановити вас на правильний шлях.


1

Як щодо lpinfo (потрібна установка CUPS)
(використовуючи Perl тут для фільтрації інших речей),
дивіться тут

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

Пристрій: uri = socket: //192.168.0.3
      клас =
      інформація про мережу = Officejet серії J6400
Пристрій: uri = сокет: //192.168.0.5: 9100
      клас =
      інформація про мережу = HP Officejet Pro 8610

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.