Liste de toutes les imprimantes réseau (y compris celles non installées)

9

Il est facile de répertorier les imprimantes que vous avez déjà installées avec cette commande:

lpstat -a

Toutefois, cela ne répertorie pas les imprimantes réseau que vous n'avez PAS installées.

nmap recherchera tous les ports ouverts sur le LAN, mais la liste produite ne sera pas limitée aux imprimantes réseau:

sudo nmap -sT 192.168.0.1-254

Existe-t-il une commande qui effectue les opérations suivantes:

  1. Détecte automatiquement le LAN auquel vous êtes actuellement connecté.
  2. Scanne l'intégralité du LAN à la recherche d'imprimantes réseau spécifiquement.
  3. Produit une liste d'imprimantes réseau fournissant à la fois leurs noms d'hôte et leurs adresses IP.

Par exemple, je me suis connecté à l'interface Web de l'imprimante Imagistics fx2100 aujourd'hui. Il avait une fonction "Find device" qui était capable de trouver toutes les imprimantes réseau sur le LAN (voir capture d'écran ci-dessous). On dirait qu'il y aurait une commande sous Linux qui pourrait obtenir la même liste et les mêmes informations (sans script):

entrez la description de l'image ici

Lonniebiz
la source
2
Le problème ici est que les critères («imprimante réseau») n'ont de sens que pour les humains. Les programmes informatiques n'auront pas une idée claire de cette idée. Vous pouvez essayer de faire un balayage de réseau pour les adresses IP qui se connectent avec succès sur le port JetDirect (tcp / 9100). La liste est encore susceptible d'être incomplète dans le cas d'imprimantes non JetDirect telles que les imprimantes de bureau partagées sur SMB.
Bratchley
1
Comme vous le mentionnez, un programme peut analyser les ports ouverts de chaque IP sur le LAN, et même parler un peu à ces ports pour collecter des données. Je comprends comment cela pourrait être fait. Je ne connais aucun utilitaire de ligne de commande qui le fasse déjà (spécifiquement pour les imprimantes).
Lonniebiz
1
Vous pouvez effectuer des balayages pour trouver une liste d'adresses IP valides et utiliser ncpour vérifier qu'il peut se connecter tcp/9100. Vous devriez écrire quelque chose car c'est un problème très spécifique que vous essayez de résoudre. Je doute donc que quelqu'un ait écrit un outil pour le faire.
Bratchley

Réponses:

3

Il n'y a pas de programme qui le fait spécifiquement, mais avec nmap -A(détection d'hôte avancée / empreinte digitale) peut identifier la plupart des imprimantes. Vous allez devoir le filtrer après.

Jusqu'à
la source
11

Si avahi-daemon est en cours d'exécution,

avahi-browse -a | grep Printer
infoclogged
la source
Cette avahi-browse -acommande semble répertorier les mêmes imprimantes plusieurs fois et (même avec l' --allargument), elle laisse de côté les informations pertinentes qui sont affichées dans la capture d'écran ci-dessus (comme l'adresse IP de l'imprimante qu'elle répertorie). Cela m'étonne que cette "imprimante Imagistics fx2100" contienne un microprogramme qui bat tous les utilitaires Linux que j'ai vus, lorsqu'il s'agit de répertorier toutes les imprimantes de toutes les marques (qui ne sont même pas installées, mais fournissent une impression réseau).
Lonniebiz