Wyświetl wszystkie drukarki sieciowe (w tym te niezainstalowane)

10

Łatwo jest wyświetlić listę drukarek już zainstalowanych za pomocą tego polecenia:

lpstat -a

Nie zawiera to jednak drukarek sieciowych, których NIE zainstalowałeś.

nmap wyszuka wszystkie otwarte porty w sieci LAN, ale utworzona lista nie będzie ograniczona do drukarek sieciowych:

sudo nmap -sT 192.168.0.1-254

Czy istnieje polecenie, które wykonuje następujące czynności:

  1. Automatycznie wykrywa sieć LAN, z którą aktualnie jesteś połączony.
  2. Skanuje całą sieć LAN, szukając konkretnie drukarek sieciowych.
  3. Tworzy listę drukarek sieciowych, podając zarówno ich nazwy hostów, jak i adresy IP.

Na przykład dzisiaj zalogowałem się do interfejsu sieciowego drukarki Imagistics fx2100. Miał funkcję „Znajdź urządzenie”, która była w stanie znaleźć wszystkie drukarki sieciowe w sieci LAN (patrz zrzut ekranu poniżej). Wygląda na to, że w Linuksie istnieje polecenie, które może uzyskać tę samą listę i informacje (bez skryptów):

wprowadź opis zdjęcia tutaj

Lonniebiz
źródło
2
Problem polega na tym, że kryteria („drukarka sieciowa”) mają sens tylko dla ludzi. Programy komputerowe nie będą miały jasnego zrozumienia tego pomysłu. Możesz spróbować przeszukać sieć dla adresów IP, które pomyślnie łączą się na porcie JetDirect (tcp / 9100). Lista prawdopodobnie nadal będzie niekompletna w przypadku drukarek innych niż JetDirect, takich jak drukarki stacjonarne współdzielone przez SMB.
Bratchley,
1
Jak wspomniałeś, program może skanować otwarte porty każdego adresu IP w sieci LAN, a nawet trochę rozmawiać z tymi portami w celu zebrania danych. Rozumiem, jak można to zrobić. Po prostu nie znam żadnego narzędzia wiersza poleceń, które już to robi (szczególnie w przypadku drukarek).
Lonniebiz
1
Możesz wykonać przegląd, aby znaleźć listę prawidłowych adresów IP i użyć ncdo sprawdzenia, czy można się połączyć tcp/9100. Musisz coś napisać, ponieważ jest to bardzo specyficzny problem, który próbujesz rozwiązać. Więc wątpię, czy ktoś napisał narzędzie do tego.
Bratchley,

Odpowiedzi:

3

Nie ma programu, który to robi, ale z nmap -A(zaawansowane wykrywanie hosta / pobieranie odcisków palców) może być w stanie zidentyfikować większość drukarek. Będziesz musiał to przefiltrować później.

Do
źródło
11

Jeśli uruchomiony jest demon avahi,

avahi-browse -a | grep Printer
zaatakowany
źródło
To avahi-browse -apolecenie wydaje się wyświetlać listę tych samych drukarek wiele razy i (nawet z --allargumentem) pomija istotne informacje, które pokazano na zrzucie ekranu powyżej (np. Adres IP drukarki, którą wyświetla). Dziwi mnie, że ta „drukarka Imagistics fx2100” zawiera oprogramowanie układowe, które bije każde narzędzie Linux, jakie widziałem, jeśli chodzi o wyświetlanie listy wszystkich drukarek wszystkich marek (które nie są nawet zainstalowane, ale zapewniają drukowanie sieciowe).
Lonniebiz