AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SNMP : DLL Sample zum Einhängen in Windows SNMP Service
Thema durchsuchen
Ansicht
Themen-Optionen

SNMP : DLL Sample zum Einhängen in Windows SNMP Service

Ein Thema von moelski · begonnen am 18. Feb 2010 · letzter Beitrag vom 27. Nov 2015
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 18. Feb 2010, 08:27
Moin !

Ich muss einen Dienst in die Lage versetzen auf SNMP Anfragen zu reagieren. Nun habe ich erfahren das man sowas über den SNMP Dienst von Windows realisieren kann. Dazu muss man wohl eine DLL erstellen die 3 bestimmte Funktionen exportiert.
Diese DLL wird dann wohl in der Registry verankert und kann danach vom SNMP Dienst verwendet werden.

Soweit meine Theorie

Hat das schon mal jemand gemacht und könnte hier ein Beispiel posten - oder zumindest ein paar Stichwörter in den Raum werfen mit denen man bei Google & Co ggf. weiter kommt? Denn im Moment fehlt mir vollkommen der Ansatz für dieses Szenario
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#2

Re: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 18. Feb 2010, 11:18
deine Theorie stimmt soweit - das ganze habe ich auch schon mal in die Praxis umgesetzt:

Die DLL exportiert mindestens MSDN-Library durchsuchenSnmpExtensionInit, MSDN-Library durchsuchenSnmpExtensionQuery und MSDN-Library durchsuchenSnmpExtensionTrap und erhält vom Service die Daten per IPC (z.B. Shared Memory), da sie ja dann in den Prozessraum vom SNMP-Dienst geladen wird.

Beim Starten des SNMP-Dienstes ruft derselbe als erstes SnmpExtensionInit auf, so dass die DLL die Basis-OID und den Trap-Event-Handle bekannt geben kann. Sofern vorhanden, wird danach SnmpExtensionInitEx aufgerufen, bis diese False retourniert, so dass zusätzliche Basis-OIDs bekannt gegeben werden können.

Später dann, wenn ein SNMP-Request-PDU vom Netzwerk her den SNMP-Dienst erreicht, und sich die gewünschten OIDs "unterhalb" einer deiner Basis-OIDs befinden, ruft der Dienst SnmpExtensionQuery auf, um von der DLL die entsprechenden Variablen-Werte zu erhalten und sendet diese dann per SNMP zurück zum Client.

Möchte die DLL einen SNMP-Trap absetzen, so wird der Trap-Event gesetzt, worauf der Dienst dann SnmpExtensionTrap der DLL aufruft, bis False retourniert wird, um so alle pendenten Traps "abzuholen".

Besonderes Augenmerk ist auf das Memory-Handling zu richten: teilweise behält die DLL die Verantwortung zum Freigeben von Speicher, teilweise übernimmt dies jedoch auch der SNMP-Dienst. Da der SNMP-Dienst typischerweise lange läuft, sollten Memory-Leaks vermieden werden, da sonst irgendwann das Memory vollläuft.

Die erlaubten Communities/Client-Hosts sowie die Trap-Verteilerliste wird zentral vom SNMP-Dienst verwaltet.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 18. Feb 2010, 13:57
Moin !

Wäre es möglich das du mir etwas Quellcode zur Verfügung stellst?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#4

Re: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 18. Feb 2010, 14:13
Zitat von moelski:
Wäre es möglich das du mir etwas Quellcode zur Verfügung stellst?
leider nicht, ich könnte höchstens punktuell Ausschnitte zur Verfügung stellen.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 19. Feb 2010, 12:30
Moin !

Ich brauche ja nicht deine ganze Implementierung.
Kannst du die DLL nicht auf ein ganz einfaches Beispiel zusammenstrippen? Das würde mir für den Start vollkommen reichen.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
ATON

Registriert seit: 17. Aug 2007
3 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 11. Mai 2015, 16:47
Hallo,

ich bin auch genau an diesem Punkt (Windows SNMP.dll und den SNMP-Dienst zu nutzen), hat da jemand ein Beispiel oder Seiten im Internet??? Die Suchmaschinen geben leider nichts her.

Viele Grüße
  Mit Zitat antworten Zitat
bgeltenpoth

Registriert seit: 24. Jan 2012
15 Beiträge
 
Delphi XE7 Enterprise
 
#7

AW: SNMP : DLL Sample zum Einhängen in Windows SNMP Service

  Alt 27. Nov 2015, 15:56
Hi ...
gibt es hier neues zu diesem Thema?
Benedikt Geltenpoth
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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