00001 '
00002 '
00003 '
00004 '
00005 '
00006 '
00007 '
00008 '
00009 '
00010 '
00011 '
00012
00013 '
00014 const PktXPacketTypePromiscuous = &H0020
00015 const PktXLinkType802_3 = 1
00016 const PktXLinkType802_5 = 2
00017 const PktXLinkTypeFddi = 3
00018 const PktXLinkTypeWan = 4
00019 const PktXLinkTypeLocalTalk = 5
00020 const PktXLinkTypeDix = 6
00021 const PktXLinkTypeArcnetRaw = 7
00022 const PktXLinkTypeArcnet878_2 = 8
00023 const PktXLinkTypeAtm = 9
00024 const PktXLinkTypeWirelessWan = 10
00025 const PktXModeCapture = 1
00026
00027 '
00028 Set oPktX = WScript.CreateObject("PktX.PacketX","PacketX_")
00029
00030 '
00031 For i = 1 To oPktX.Adapters.Count
00032 If oPktX.Adapters(i).IsGood Then
00033 WScript.Echo "(" & i & ") " & RTrim(LTrim(oPktX.Adapters(i).Description))
00034 'PrintAdapter(oPktX.Adapters(i))
00035 End If
00036 Next
00037
00038 '
00039 oPktX.Adapter = Nothing
00040 While oPktX.Adapter Is Nothing
00041 WScript.StdOut.Write "Choose adapter#"
00042 On Error Resume Next
00043 oPktX.Adapter = oPktX.Adapters(RTrim(LTrim(WScript.StdIn.ReadLine)))
00044 On Error Goto 0
00045 Wend
00046
00047 '
00048 oPktX.Adapter.BuffSize=256*1024 '
00049 oPktX.Adapter.BuffMinToCopy=0
00050
00051 '
00052 oPktX.Adapter.HWFilter=PktXPacketTypePromiscuous
00053 oPktX.Adapter.Mode=PktXModeCapture
00054
00055 '
00056 oPktX.Start
00057 WScript.Sleep(60000)
00058 oPktX.Stop
00059
00060 PrintStats(oPktX.Adapter)
00061
00062 '
00063 Public Sub PacketX_OnPacket(ByRef oPacket)
00064 PrintHead(oPacket)
00065 PrintData(oPacket)
00066 End Sub
00067
00068 Public Sub PrintAdapter(ByRef oAdapter)
00069 WScript.Echo "Device name is " & oAdapter.Device
00070 WScript.Stdout.Write "Link type is "
00071 Select Case oAdapter.LinkType
00072 Case PktXLinkType802_3 WScript.Echo "Ethernet (802.3)"
00073 Case PktXLinkType802_5 WScript.Echo "Token Ring (802.5)"
00074 Case PktXLinkTypeFddi WScript.Echo "FDDI"
00075 Case PktXLinkTypeWan WScript.Echo "WAN"
00076 Case PktXLinkTypeLocalTalk WScript.Echo "LocalTalk"
00077 Case PktXLinkTypeDix WScript.Echo "DIX"
00078 Case PktXLinkTypeArcnetRaw WScript.Echo "ARCNET (raw)"
00079 Case PktXLinkTypeArcnet878_2 WScript.Echo "ARCNET (878.2)"
00080 Case PktXLinkTypeAtm WScript.Echo "ATM"
00081 Case PktXLinkTypeWirelessWan WScript.Echo "NdisWirelessXxx media"
00082 Case Else WScript.Echo "Unknown!"
00083 End Select
00084 WScript.Echo "Link speed is " & oAdapter.LinkSpeed & " bps"
00085 WScript.Echo "Network IP addres is " & oAdapter.NetIP
00086 WScript.Echo "Network mask is " & oAdapter.NetMask
00087 WScript.Echo "HW address is " & oAdapter.HWAddress
00088 End Sub
00089
00090 Public Sub PrintHead(ByRef oPacket)
00091 WScript.Echo "----------------------- Packet Header ---------------------"
00092 WScript.Echo "Original size " & oPacket.OriginalSize & " bytes"
00093 WScript.Echo "Capture size " & oPacket.DataSize & " bytes"
00094 WScript.Echo "Capture time " & oPacket.TimeSec & " (number of seconds from 1/1/1970)"
00095 WScript.Echo "Capture microseconds " & oPacket.TimeUSec
00096 WScript.Echo "Capture date " & oPacket.Date & " (system date and time)"
00097 End Sub
00098
00099 Public Sub PrintData(ByRef oPacket)
00100 WScript.Echo "----------------------- Packet Data -----------------------"
00101 For Each bByte In oPacket.Data
00102 If Len(sLine) >= 48 Then
00103 WScript.Echo sLine
00104 sLine=""
00105 End If
00106 If bByte <= &H0F Then sLine=sLine & "0" End If
00107 sLine=sLine & Hex(bByte) & " "
00108 Next
00109 If Len(sLine) > 0 Then WScript.Echo sLine Else WScript.Echo "" End If
00110 End Sub
00111
00112 Public Sub PrintStats(ByRef oAdapter)
00113 WScript.Echo "------------------- Capture Statistics --------------------"
00114 WScript.Echo "Packets received " & oAdapter.PacketsRecv
00115 WScript.Echo "Packets lost " & oAdapter.PacketsLost
00116 End Sub