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!
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
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
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à...
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
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