Ruth hat geschrieben:1. weiss jemand, ob es für den Aufruf des LGPL-Snmp-Package JoeSnmp Klassen existieren, die den Aufruf dieses Packages starten können? (GetSnmp...)
nicht das ich wüßte. die klassen mußt du dir selbst schreiben. ich hatte hier:
http://forum.2-com.de/draytek-vigor-thema4078.html doch mal den "SimpleClient" gepostet. das ist doch ein snmpget. das mußt du dir natürlich an deine gegebenheiten anpassen. sollte imho aber nicht das problem sein, oder?
es gibt aber auch beispiele auf sourceforge.
Ruth hat geschrieben:2. snmpWalk
läuft der snmpwalk automatisch weiter, bis nichts mehr kommt oder muss man ein Ende angeben?
Über Tips und Tricks wär ich sehr dankbar
Grünschnabel Ruth
das ende eines snmp-walks fängst du mit:
- Code: Alles auswählen
vb.getValue().typeId() == SnmpEndOfMibView.ASNTYPE
im snmp-handler ab. mußt du natürlich in eine if-abfrage einbauen.
hier noch die antworten auf deine pn, da die hier so gut reinpassen:
Ruth hat geschrieben:1. GetSnmp
weisst Du, ob für den Aufruf des LGPL-Snmp-Package JoeSnmp Klassen existieren, die den Aufruf dieses Packages starten können? (GetSnmp...), wahrscheinlich so ähnlich wie der simpleClient, den du mir mal geschickt hast, oder?
siehe ganz oben. den "SimpleClient" ein wenig umgebaut, schon hast du dein getsnmp. die "main"-methode nennst du meinetwegen "getsnmp". dann kannst du die klasse aus jeder x-beliebigen klasse so aufrufen:
- Code: Alles auswählen
SimpleClient snmp = new SimpleClient();
snmp.getsnmp();
die parameterübergabe und ein- und ausgabe mußt du natürlich nach deinen wünschen modifizieren.
Ruth hat geschrieben:2. Bulk
Hast Du zufällig Beispielcode, wie es ablaufen könnte, wenn ich mit einem Bulk SnmpWalks abschicken möchte
also einen bulk gibt es nur bei get. das hat folgende bewandnis: damit man netzwerktraffic spart und den agent entlastet braucht man nicht mehrere get's hintereinander senden, sondern verpackt die gewünschten oid's in einen bulk. man sendet für verschiedene anfragen also nur ein paket. ein walk läuft anders ab. da "durchwandert" man den kompletten baum von oben bis unten, bis das ende erreicht ist. einen bulk habe ich so gelöst:
- Code: Alles auswählen
SnmpVarBind[] vblist;
vblist = new SnmpVarBind [oid.length];
for (int i = 0; i <= oid.length-1; i++)
{
vblist[i] = new SnmpVarBind(oid[i]);
}
SnmpPduRequest pdu = new SnmpPduRequest(SnmpPduPacket.GET, vblist);
pdu.setRequestId(SnmpPduPacket.nextSequence());
dabei ist oid[] ein array mit den gewünschten oid's, dessen values man erhalten möchte. man muß aber aufpassen, da der agent nicht beliebig große bulks beantwortet. dies hängt aber separat von jeden agent selbst ab. bei meinen vigor 2500 habe ich mal tests gemacht, wobei er bulks bis nahe mtu-größe beantwortet hat.
Ruth hat geschrieben:3. snmpWalk
läuft der snmpwalk automatisch weiter, bis nichts mehr kommt oder muss man ein Ende angeben?
siehe oben.