home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / AAA_SNMP_O1997295282006.psc / ConvertSnmpVal.bas < prev    next >
BASIC Source File  |  2006-04-09  |  4KB  |  111 lines

  1. Attribute VB_Name = "ConvertSnmpVal"
  2. 'Author: Petr Domorazek
  3. 'E-mail: dsoft@fcanet.cz
  4. 'http://dsoft.php5.cz
  5.  
  6. Option Explicit
  7.  
  8. Function ConvertSnmpValue(SnmpValueType As Byte, SnmpValueString As String) As String
  9. Dim i As Integer
  10. Select Case SnmpValueType
  11.     Case 2 'Integer
  12.         ConvertSnmpValue = MyConvertInteger(SnmpValueString)
  13.     Case 4 'Octet String
  14.         ConvertSnmpValue = ConvertOctetString(SnmpValueString)
  15.     Case 5 'Null
  16.         ConvertSnmpValue = "Null"
  17.     Case 6 'OID
  18.         ConvertSnmpValue = DeOID(SnmpValueString)
  19.     Case &H40 'IP Address
  20.         ConvertSnmpValue = MyConvertIPAddress(SnmpValueString)
  21.     Case &H41 'Counter
  22.         ConvertSnmpValue = MyConvertNumber(SnmpValueString)
  23.     Case &H42 'Gauge
  24.         ConvertSnmpValue = MyConvertNumber(SnmpValueString)
  25.     Case &H43 'TimeTicks
  26.         ConvertSnmpValue = ConvertTimeTicks(SnmpValueString)
  27.     Case Else 'Other values
  28.         ConvertSnmpValue = ConvertOctetString(SnmpValueString)
  29. End Select
  30. End Function
  31.  
  32. Private Function ConvertTimeTicks(OctString As String) As String
  33. Dim PStr As String
  34. Dim Vtime As Double
  35. Dim i As Integer
  36.         ConvertTimeTicks = "&H"
  37.         For i = 1 To Len(OctString)
  38.             PStr = Hex(Asc(Mid(OctString, i, 1)))
  39.             If Len(PStr) = 1 Then PStr = "0" & PStr
  40.             ConvertTimeTicks = ConvertTimeTicks & PStr
  41.             Next
  42.         Vtime = Val(ConvertTimeTicks)
  43.         ConvertTimeTicks = "(" & CStr(Vtime) & ") " & CStr(Vtime \ 8640000) & " day(s), "
  44.         Vtime = Vtime Mod 8640000
  45.         ConvertTimeTicks = ConvertTimeTicks & CStr(Vtime \ 360000) & ":"
  46.         Vtime = Vtime Mod 360000
  47.         ConvertTimeTicks = ConvertTimeTicks & CStr(Vtime \ 6000) & ":"
  48.         Vtime = Vtime Mod 6000
  49.         ConvertTimeTicks = ConvertTimeTicks & CStr(Vtime \ 100) & "."
  50.         Vtime = Vtime Mod 100
  51.         ConvertTimeTicks = ConvertTimeTicks & CStr(Vtime)
  52. End Function
  53.  
  54. Private Function ConvertOctetString(OctString As String) As String
  55. Dim PStr As String
  56. Dim i As Integer
  57. Dim H As Boolean
  58.  
  59. H = False
  60. For i = 1 To Len(OctString)
  61.     If Asc(Mid(OctString, i, 1)) < 32 Then
  62.         H = True
  63.         Exit For
  64.         End If
  65.     Next
  66.  
  67. If H = True Then
  68.     ConvertOctetString = StringToHex(OctString)
  69. Else
  70.     ConvertOctetString = OctString
  71.     End If
  72. End Function
  73.  
  74. Private Function MyConvertIPAddress(OctString As String) As String
  75. Dim PStr As String
  76. Dim i As Integer
  77.     For i = 1 To Len(OctString)
  78.         MyConvertIPAddress = MyConvertIPAddress & Asc(Mid(OctString, i, 1)) & "."
  79.         Next
  80.         MyConvertIPAddress = Left(MyConvertIPAddress, Len(MyConvertIPAddress) - 1)
  81. End Function
  82.  
  83.  
  84. Private Function MyConvertInteger(OctString As String) As String
  85. Dim TmpStr As String
  86. Dim F As Integer
  87.  
  88. If Asc(OctString) > 127 Then
  89.         For F = 1 To Len(OctString)
  90.             TmpStr = TmpStr & "FF"
  91.             Next
  92.         TmpStr = "&H" & TmpStr
  93.         MyConvertInteger = MyConvertNumber(OctString) - CDbl(TmpStr) - 1
  94.     Else
  95.         MyConvertInteger = MyConvertNumber(OctString)
  96.         End If
  97. End Function
  98.  
  99. Private Function MyConvertNumber(OctString As String) As String
  100. Dim PStr As String
  101. Dim i As Integer
  102.         'MyConvertNumber = "&H"
  103.         For i = 1 To Len(OctString)
  104.             PStr = Hex(Asc(Mid(OctString, i, 1)))
  105.             If Len(PStr) = 1 Then PStr = "0" & PStr
  106.             MyConvertNumber = MyConvertNumber & PStr
  107.             Next
  108.         'MyConvertNumber = CDbl(MyConvertNumber)
  109.         MyConvertNumber = HexUnsigned2Dbl(MyConvertNumber)
  110. End Function
  111.