Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi (Indy) SNMP-Zugriff auf einen Netzwerkdrucker (https://www.delphipraxis.net/152834-indy-snmp-zugriff-auf-einen-netzwerkdrucker.html)

RWarnecke 8. Jul 2010 15:09

(Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Hallo zusammen,

ich versuche gerade mit der Komponente TIdSNMP auf meinen Netzwerkdrucker zuzugreifen. Nur leider werden keine Wert(e) zurückgegeben.

Delphi-Quellcode:
var
  Idx: Integer;
  IdSNMP_1 : TIdSNMP;
  RetrStr: string;
begin
  M_1.Lines.Clear;
  IdSNMP_1 := TIdSNMP.Create(nil);
  IdSNMP_1.Query.Clear;
  IdSNMP_1.Query.Host := '192.168.200.88';
  IdSNMP_1.Query.Community := 'public';
  IdSNMP_1.Query.PDUType := PDUGetNextRequest;
  IdSNMP_1.Query.MIBAdd('1.3.6.1.2.1.1.5.0', '');
  IdSNMP_1.Query.Version := 1;

  IdSNMP_1.Connect;

  if IdSNMP_1.Connected then
    if IdSNMP_1.SendQuery then
    begin
      M_1.Lines.Add('Replies: ' + IntToStr(IdSNMP_1.Reply.ValueCount));
      for Idx := 0 to IdSNMP_1.Reply.ValueCount - 1 do
        M_1.Lines.Add(IdSNMP_1.Reply.Value[0]);
    end
    else
      ShowMessage('SNMP-Request failed !!')
  else
    ShowMessage('SNMP-Connect failed !!');

end;
Wenn ich jetzt einen Versuch starte, wird mir lediglich nur die Message "SNMP-Request failed !!" angezeigt. Was mache ich falsch ?

Ich muss nicht die Indy-Komponente nehmen, ich kann auch auf eine andere kostenlose Variante ausweichen. Ich teste das ganze nämlich gerade.

sx2008 9. Jul 2010 01:00

AW: (Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Hast du mit einer unabhängigen SNMP-Software getestet, ob der Drucker überhaupt auf die Anfragen reagiert?
Ich meine es ist immer das gleiche Prinzip bei der Kommunikation; ob es sich um serielle Schnittstellen, TCP/IP, SOAP, IMAP, FTP oder was auch immer handelt:
Es muss immer zuerst mit einer Software geprüft werden, ob eine Datenverbindung besteht.
Erst danach beginnt man zu programmieren.

z.B. SNMP JManager, im Internet gibt es zig weitere Alternativen

RWarnecke 9. Jul 2010 05:47

AW: (Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Hallo sx2008,

danke für Deine Antwort. Ich habe mit unabhängigen Programmen drauf zugegriffen und ich konnte damit die komplette MIB-Struktur des Gerätes auslesen. Zusätzlich habe ich es nochmal mit dem SNMP-JManager heute morgen probiert. Auch damit kann ich auf das Gerät ohne weiteres zugreifen.

sx2008 9. Jul 2010 08:46

AW: (Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Als nächsten Schritt würde ich vorschlagen mit Wireshark den Netzverkehr aufzuzeichnen.

Alternativ kannst du auch die Unit mit der TIdSNMP-Komponente in dein Projektverzeichnis kopieren und dann einen Breakpoint auf Zeile
Delphi-Quellcode:
if IdSNMP_1.SendQuery then
setzten.
Mit F8 in die Funktion SendQuery einsteppen und schauen was da nicht passt.
Evtl. müssen weitere Units von Indy ins Projektverz. kopiert werden, um noch tiefer vorzudringen.

jus 9. Jul 2010 10:10

AW: (Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Hallo RWarnecke,
ich konnte mich errinnern, dass bei mir Indy auch nicht sofort bei snmp gelangt. Was bei mir auf Anhieb funktionierte war das snmp Demo von der Synapse Komponente. Gibt es unter "http://synapse.ararat.cz/doku.php/download" zum runterladen. Schau dir einfach das Demo unter source\demo\snmp an. Sollte auf Anhieb funktionieren.
Achja für Installation in Delphi muß du natürlich den \lib Pfad von Synapse in Delphi Bibliothekspfad eintragen. :wink:

Lg,
jus

RWarnecke 9. Jul 2010 12:16

AW: (Indy) SNMP-Zugriff auf einen Netzwerkdrucker
 
Hallo zusammen,

mit Synapse funktioniert das ganze einwandfrei. Ich danke euch beiden für eure Antworten. Ich habe mich nach dem Test mit Synapse dafür entschieden diese Komponente zu verwenden. Sie ist zwar noch nicht Delphi 2010 fähig, aber das sollte machbar sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz