Italian SNMP Library V.0.1

MaAncheNo

Member
Licensed User
Longtime User
Dopo aver attinto al forum alla ricerca di informazioni e aiuto (vedi LucaMs per gli eventi) metto a disposizione una parte del lavoro svolto. Premetto che la libreria SNMP è sviluppata parzialmente visto che esegue ciò che mi necessita e che al momento l'unico comando standard funzionante è il PDUGETREQUEST, anche la parte relativa alla gestione UDP è al momento "esterna", questo perché volevo che la libreria SNMP non avesse nessuna dipendenza.
Storia della libreria: ho dovuto sviluppare il protocollo SNMP per esigenze aziendali, dovevo "recuperare" informazioni circa lo stato delle stampanti per gestire i materiali di ricambio, toner, vita residua del tamburo e altro. Inoltre dovevo aver sotto controllo il traffico ethernet su alcune porte del firewall e degli switch aziendali, il tutto ovviamente monitorato tramite Android.
Per ovvie ragioni non posso pubblicare il sorgente completo (è di proprietà dell'azienda per cui lavoro) ma nulla mi vieta di pubblicare la libreria ed eventuali parti di codice per aiutare il forum se ci fosse questa necessità.
Mi scuso fin da ora per eventuali mal funzionamenti, ma di fatto è una specie di beta version sempre in aggiornamento.
Buon weekend a tutti!
 

Attachments

  • SNMP_0.1_library.zip
    11.5 KB · Views: 500
  • SNMP_demo.zip
    8.9 KB · Views: 472

Star-Dust

Expert
Licensed User
Longtime User
Grazie, sarà una cosa interessante.
 

Star-Dust

Expert
Licensed User
Longtime User
Chissà se possibile fingersi una stampante o un Framework e mandare in confusione la rete o il programma di gestione, magari rispondendo a posto delle periferiche :eek::D:D:D:D
 

MaAncheNo

Member
Licensed User
Longtime User
Guarda se ti può essere utile questo:
http://www.snmp4j.org/
Avevo notato questa libreria, ma l'interfacciamento è ancora al di là delle mie capacità. Certo che avere la possibilità di usare SNMPv2 e V3 sarebbe bello.
Per altro entrano in gioco autenticazioni e cifrature che potrebbero rivelarsi utili, anche perché lo "zoccolo duro" (ASN.1 BER) sarebbe utile nel caso si voglia effettuare una connessione LDAP a un server Windows.

Chissà se possibile fingersi una stampante o un Framework e mandare in confusione la rete o il programma di gestione, magari rispondendo a posto delle periferiche :eek::D:D:D:D
Si, ma solo a patto che siano le periferiche stesse, acquisita la consapevolezza della propria esistenza, a scambiarsi IP e caratteristiche varie.... e prima o dopo succederà... :D
 

MaAncheNo

Member
Licensed User
Longtime User
Tra i valori che si possono recuperare via SNMP mi è capitato di dover estrarre dal dispositivo remoto il valore di UpTime, valore che è memorizzato come ticks in centesimi di secondo. A dire il vero ho fatto un po' di fatica e mi è venuto fuori solo questo:

B4X:
Sub SNMP_ConvertTicksToTimeString(t As Long) As String
    Dim  days, hours, minutes, seconds As Int
    Dim  tdays, thours, tminutes, tseconds As Int
    Try
        tseconds = 100
        tminutes = tseconds * 60
        thours = tminutes * 60
        tdays = thours * 24
        seconds = t / tseconds Mod 60
        minutes = t / tminutes Mod 60
        hours = t / thours Mod 24
        days = t / tdays
        Return (days & " days, " & hours & " hours, " & minutes & " minutes, " & seconds & " seconds")
    Catch
        Return ""
    End Try   
End Sub

Esiste una soluzione meno incasinata?
 

udg

Expert
Licensed User
Longtime User
Hai provato a convertire i centesimi in millesimi e poi usare DateTime o DateUtils?
Ecco, vedo che @LucaMs ha avuto la stessa idea..ma qualche ms prima di me..eheh
 

hears

Active Member
Licensed User
Longtime User
i want use this SNMP libary :

and i have try the demo, it is only 1 thread.it is to slowly,send after sleep(500), if quickly ,the result will mix together..

how to send many thread ? i found in this libary have SNMP.ReqId how to use it ? I have about 100 Oids need send . can not sleep , it is too long time
 
Top