11
votes

SNMP pour imprimante locale?

Je recherche un moyen d'obtenir des informations d'une imprimante locale. Peut-être avec le protocole SNMP?

L'imprimante est connectée avec USB ou PPI (port parallèle). Toutes les imprimantes ont un total interneComptage et support SNMP.

Voici quelques exemples des imprimantes:

  • frère HL1430
  • frère HL5150
  • Brother HL1230
  • KYOCERA 1118
  • KYOCERA 1128
  • KYOCERA 2000
  • KYOCERA 1300
  • KYOCERA 3920
  • Kyocera 1920
  • KYOCERA 1350

    est-ce possible? Merci


3 commentaires

C'est trop vague pour répondre de manière significative. Veuillez fournir au moins: Quel modèle d'imprimante? Quelles informations recherchez-vous? Que voulez-vous faire avec les informations?


En outre, qu'est-ce que "liée à PPI" signifie? Est une interface PPI? Je n'en ai jamais entendu parler. S'il vous plaît épeler toutes les abréviations des questions, sauf si elles sont vraiment communes (comme USB :-)).


L'imprimante est de Kyocera, HP ou frère, je ne peux pas dire un modèle spécifique ... Je cherche le statut de toner, les impressions et le série de séries. Je veux énumérer les informations dans une liste de liste ou quelque chose comme ça. PPI est un port parallèle.


3 Réponses :


4
votes

Vous pouvez sortir un peu d'informations sur les imprimantes via WMI, bien que je ne sois pas sûr s'il contient les informations que vous recherchez:
http://msdn.microsoft.com/en-us/library/aa394363

Je pense que les imprimantes HP stockent leurs numéros de série quelque part sous cette clé de registre (éventuellement une clé appelée identité ou similaire):
HKEY_LOCAL_MACHINE \ LOGICIEL \ HEWLETT-PACKARD \

Je n'ai jamais utilisé SNMP, même si je me suis souvenu de cette bibliothèque qui pourrait être utile si vous descendez cette route:
http://www.codeproject.com/kb/cs/snmpdll.aspx


0 commentaires

0
votes

SNMP Standard ne prend pas en charge les types USB ou d'autres types de connexion. Il prend uniquement en charge la pile TCP / IP sur Ethernet. Par conséquent, la réponse ne devrait être ni impossible.

Mais nous voyons certaines entreprises Limplément SNMP sur d'autres types de réseau / de connexion. Cependant, cette personnalisation n'est pas standardisée et vous ne pouvez pas effectuer des requêtes SNMP à l'aide de navigateurs de MIB standard ou de suite.


2 commentaires

Je n'ai pas dit que je veux utiliser SNMP. Je recherche un moyen d'obtenir des informations sur USB ou PPI comme SNMP.


Bien que cela fait partie de la réalité, il n'est pas toujours tout à fait vrai, la plupart des imprimantes mettent en œuvre la MIB imprimante standard et il y a un proxy pour faire SNMP sur USB. Voir ma réponse.



18
votes

Je pense que SNMP est la bonne approche. La plupart des imprimantes implémentent le imprimante standard MIB et le RFC 1213 MIB Pour que toute propriété que vous puissiez obtenir à partir de là sera du modèle indépendant. Par exemple, si vous recherchez le numéro de série, votre propriété est probablement PRTGeneralseralNumber 1.3.6.1.2.1.43.5.1.1.17

Pour d'autres propriétés, vous devez rechercher dans les MIB spécifiques, par exemple dans le HP LaserJet MIB Vous avez beaucoup de choses comme IMPRIMÉ-Media-Usage, imprimé-Media-Simplex-Count, imprimé-Media-Duplex-Count, Usage-Moyenne -Teler-couverture, utilisation numérisée-média, total-color-page-compte .....

Pour utiliser SNMP La bibliothèque la plus étendue est Net-SNMP mais il utilise une API C et Je ne le recommande pas si vous devez l'utiliser dans des applications multithreadées lourdes ou à l'aide de SNMPV3. Il existe d'autres bibliothèques telles que texte de lien qui semblent très prometteurs, mais la plupart des bibliothèques fiables qui y sont commerciales et non très bon marché.

Tout ce qui précède est assez facile à mettre en œuvre si l'imprimante est connectée au réseau, maintenant si L'imprimante est USB ou PPI connectée Vous devez mettre la main dans l'agent proxy HP SNMP, vous pouvez trouver Un excellent post ici . Il est essentiellement un peu de logiciel Windows sur le service SNMP SNMP standard et fournit des données SNMP sur l'imprimante HP par défaut connectée à un ordinateur via un câble USB ou parallèle>. Je ne sais pas si cela fonctionne avec d'autres marques, mais il semble qu'il utilise le protocole standard DOT4 sur USB pour émuler des communications TCP / IP typiques. S'il y a une méthode standard pour se connecter à toutes ces imprimantes, celle-ci est la plus prometteuse. Une autre méthode que je peux penser est de pirater les pilotes individuels de chaque modèle pour voir s'ils fournissent des informations (qui le font certainement) et de les apporter les appels respectifs pour l'obtenir, mais sur cette tâche, je pense que vous êtes sur votre propre.

Modifier

avec pilote piratage, je veux dire inverse l'ingénierie inverse des outils de chaque pilote. Par exemple, si une imprimante dispose d'un utilitaire qui affiche l'état du toner, essayez de comprendre comment cela fonctionne, je commencerais à utiliser dépend < / a> Pour ouvrir l'exécutable et voir quelle DLL est utilisée et quelles méthodes ils publient, si vous trouvez une méthode comme Gettonerstatus dans la DLL, il vaut la peine d'essayer de l'utiliser.

 text alt
(Source: dépendencywalker.com )

Si l'outil est écrit dans .net, il est beaucoup plus facile, car yo peut avoir accès au code source en le décompilant (je ne connais pas les problèmes juridiques de cette méthode). Utilisez réflecteur pour le faire et vous le verrez clairement. < / p>

 text alt
(source: corypeters.net )

Il y a un excellent livre qui couvre ces aspects appelés Inverser: secrets de l'ingénierie inverse

Comme dit avant qu'il s'agisse d'un chemin long, mais probablement le seul à réaliser ce que vous voulez faire, vous voudrez peut-être reconsidérer la viabilité du projet après avoir enquêté sur un peu les sujets que j'ai mentionnés.


4 commentaires

Bien que ce ne soit pas une norme publique, il est agréable de savoir que certains fournisseurs essaient d'utiliser SNMP pour plus de piles. Mais oui, c'est dépendant du fournisseur et peut ne pas fonctionner pour tous les modèles.


Merci pour cette longue bonne réponse. ...... Avez-vous peut-être un lien sur le pilote piratage? Je pense que le proxy n'est pas la bonne solution pour moi, car je ne peux pas voir comment cela fonctionne et construit ma propre application pour surveiller les imprimantes.


Je pense que mon dernier édition couvre tout ce que je peux faire sur ce sujet, je n'ai plus d'idées sans plus d'informations


OK merci. Ce n'est pas un .NET Assembly :( Quelles informations avez-vous besoin?