📄 pwsnmp.frm
字号:
VERSION 5.00
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Begin VB.Form frmsnmp
BackColor = &H00000000&
BorderStyle = 1 'Fixed Single
Caption = "SNMP walk"
ClientHeight = 4575
ClientLeft = 45
ClientTop = 330
ClientWidth = 9945
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 4575
ScaleWidth = 9945
StartUpPosition = 3 '窗口缺省
Begin VB.ComboBox Combo1
Height = 315
Left = 6600
TabIndex = 9
Top = 4080
Width = 2655
End
Begin VB.CommandButton Command2
BackColor = &H00FFFFFF&
Caption = "Get Next SNMP"
Height = 495
Left = 1800
Style = 1 'Graphical
TabIndex = 8
Top = 3960
Width = 1455
End
Begin VB.TextBox Text4
Height = 3135
Left = 240
MultiLine = -1 'True
TabIndex = 7
Top = 720
Width = 9375
End
Begin VB.TextBox Text1
Height = 285
Left = 240
TabIndex = 6
Text = "127.0.0.1"
Top = 360
Width = 1935
End
Begin VB.CommandButton Command1
BackColor = &H00FFFFFF&
Caption = "Get SNMP"
Height = 495
Left = 240
Style = 1 'Graphical
TabIndex = 5
Top = 3960
Width = 1215
End
Begin VB.TextBox Text3
Height = 285
Left = 5160
TabIndex = 3
Text = "1.3.6.1.2.1."
Top = 360
Width = 2775
End
Begin VB.TextBox Text2
Height = 285
Left = 2520
TabIndex = 1
Text = "public"
Top = 360
Width = 2415
End
Begin MSWinsockLib.Winsock pwSocket
Left = 9360
Top = 0
_ExtentX = 741
_ExtentY = 741
_Version = 393216
Protocol = 1
RemotePort = 161
End
Begin VB.Label Label4
BackColor = &H00FFFFFF&
Caption = "Start Walking at MIB Value"
Height = 255
Left = 4560
TabIndex = 10
Top = 4080
Width = 1935
End
Begin VB.Label Label3
BackColor = &H00FFFFFF&
Caption = "OID"
Height = 255
Left = 5160
TabIndex = 4
Top = 120
Width = 2775
End
Begin VB.Label Label2
BackColor = &H00FFFFFF&
Caption = "Community Name"
Height = 255
Left = 2520
TabIndex = 2
Top = 120
Width = 2415
End
Begin VB.Label Label1
BackColor = &H00FFFFFF&
Caption = "Remote IP Address"
Height = 255
Left = 240
TabIndex = 0
Top = 120
Width = 1935
End
End
Attribute VB_Name = "frmsnmp"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' by nima bagheri form THECRACKERS_GROUP@yahoo.ca
'TEL 098-0151-2210510
Public DataArrivalCount As Integer
Public DataReturned As String
Public Sub snmpSend(Destination As String, Community As String, Oid As String, getType As Byte)
Dim iINT As Integer
Dim convertType(255) As Byte
Dim convertString As String
Dim xsnmp As snmpPacket
Dim OIDArray As Variant
Dim OIDsize As Integer
'Text4.Text = ""
xsnmp.UniSeq = &H30
xsnmp.verSNMP.byteType = 2
xsnmp.verSNMP.packetLen = 1
ReDim xsnmp.verSNMP.packetData(0)
xsnmp.verSNMP.packetData(0) = 0
xsnmp.commSNMP.byteType = 4
ReDim xsnmp.commSNMP.packetData(CByte(Len(Trim$(Community)) - 1))
For iINT = 0 To UBound(xsnmp.commSNMP.packetData)
xsnmp.commSNMP.packetData(iINT) = Asc(Mid(Trim$(Community), iINT + 1, 1))
Next iINT
xsnmp.commSNMP.packetLen = CByte(UBound(xsnmp.commSNMP.packetData) + 1)
xsnmp.contextSNMP.byteType = getType
xsnmp.requestSNMP.byteType = 2
ReDim xsnmp.requestSNMP.packetData(0)
xsnmp.requestSNMP.packetData(0) = 1
xsnmp.requestSNMP.packetLen = 1
xsnmp.errorSNMP.byteType = 2
ReDim xsnmp.errorSNMP.packetData(0)
xsnmp.errorSNMP.packetData(0) = 0
xsnmp.errorSNMP.packetLen = 1
xsnmp.indexSNMP.byteType = 2
ReDim xsnmp.indexSNMP.packetData(0)
xsnmp.indexSNMP.packetData(0) = 0
xsnmp.indexSNMP.packetLen = 1
xsnmp.struct1SNMP.byteType = &H30
xsnmp.struct2SNMP.byteType = &H30
xsnmp.objectSNMP.byteType = 6
OIDArray = Split(Trim(Oid), ".", , vbBinaryCompare)
OIDsize = UBound(OIDArray)
If OIDArray(UBound(OIDArray)) = "" Then OIDsize = OIDsize - 1
ReDim xsnmp.objectSNMP.packetData(OIDsize - 1)
xsnmp.objectSNMP.packetData(0) = &H2B
For I = 2 To OIDsize
xsnmp.objectSNMP.packetData(I - 1) = OIDArray(I)
Next I
xsnmp.endSNMP.byte01 = 5
xsnmp.endSNMP.byte02 = 0
xsnmp.objectSNMP.packetLen = OIDsize
xsnmp.struct2SNMP.packetLen = xsnmp.objectSNMP.packetLen + 4
xsnmp.struct1SNMP.packetLen = xsnmp.struct2SNMP.packetLen + 2
xsnmp.contextSNMP.packetLen = xsnmp.struct1SNMP.packetLen + 11
Call convertBinArray(xsnmp)
Debug.Print snmpBinary
pwSocket.RemotePort = 161
pwSocket.RemoteHost = Trim(Destination)
pwSocket.SendData snmpBinary
End Sub
Private Sub Combo1_Click()
Dim OIDStart As String
Dim OIDSplit As Variant
OIDStart = Combo1.Text
OIDSplit = Split(OIDStart, "-", , vbBinaryCompare)
Text3.Text = Trim(OIDSplit(1))
End Sub
Private Sub Command1_Click()
snmpSend Text1.Text, Text2.Text, Text3.Text, pduGet
End Sub
Private Sub Command2_Click()
snmpSend Text1.Text, Text2.Text, Text3.Text, pduGetNext
End Sub
Private Sub Form_Load()
DataArrivalCount = 0
'Open "packetData.bin" For Binary Access Write As #1
Combo1.AddItem "MIB2 - 1.3.6.1.2.1."
Combo1.AddItem "Enterprise - 1.3.6.1.4.1"
Combo1.AddItem "SNMP Modules - 1.3.6.1.6.3"
End Sub
Private Sub pwSocket_Close()
MsgBox "Closed"
End Sub
Private Sub pwSocket_Connect()
MsgBox "Connected"
End Sub
Private Sub pwSocket_ConnectionRequest(ByVal requestID As Long)
MsgBox "Connection Request"
End Sub
Private Sub pwSocket_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim OIDData As String
pwSocket.GetData OIDData
'Put #1, , OIDData
'TestCvt (OIDData)
convertSnmp (OIDData)
DataArrivalCount = DataArrivalCount + 1
End Sub
Private Sub TestCvt(x)
For I = 1 To Len(x)
Debug.Print Asc(Mid(x, I, 1)) & vbTab & Mid(x, I, 1)
Next
End Sub
Private Sub pwSocket_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "Socket Error", vbInformation, Description & " " & Source
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -