Explorer.inc

This example demonstrates how to use PacketX control from Internet Explorer.

00001 <object id=pktx style="display:none" classid="clsid:0276C5E0-FDDD-470D-957C-5A3E2438D7F5"
00002   codebase="http://www.beesync.com/files/PacketX.dll" viewastext>
00003 <span>
00004   <font color="red">PacketX control load failed.</font>
00005 </span>
00006 </object>
00007 
00008 <script language="vbscript" for="pktx" event="onpacket(byref opacket)">
00009 <!--
00010   if document.form1.decode.checked then
00011     decodepacket(opacket)
00012   else
00013     printpacket(opacket)
00014   end if
00015 -->
00016 </script>
00017 
00018 <script language="vbscript" for="pktx" event="onstatistics(byref ostats)">
00019 <!--
00020   printstats(ostats)
00021 -->
00022 </script>
00023 
00024 <script language="vbscript">
00025 <!--
00026   function printpacket(byref opacket)
00027     set otx = document.form1.textarea1
00028     otx.value = otx.value  & "----------------------- packet header ---------------------" & vbcrlf
00029     otx.value = otx.value  & "original size " & opacket.originalsize & " bytes"    & vbcrlf
00030     otx.value = otx.value  & "capture size  " & opacket.datasize     & " bytes"    & vbcrlf
00031     otx.value = otx.value  & "capture time  " & opacket.timesec      & " seconds"  & vbcrlf
00032     otx.value = otx.value  & "capture time  " & opacket.timeusec     & " microsec" & vbcrlf
00033     otx.value = otx.value  & "capture date  " & opacket.date         & vbcrlf
00034   end function
00035 
00036   function decodepacket(byref opacket)
00037     const pktxprotocoltypeethernet = 1
00038     const pktxprotocoltypeip       = 2
00039     const pktxprotocoltypeudp      = 3
00040     const pktxprotocoltypetcp      = 4
00041     set otx = document.form1.textarea1
00042     select case opacket.protocol
00043       case pktxprotocoltypeethernet
00044         otx.value = otx.value  & "mac:" & vbtab &_
00045           opacket.sourcemacaddress & vbtab &"=> "&_
00046           opacket.destmacaddress & vbcrlf
00047       case pktxprotocoltypeip
00048         otx.value = otx.value & "ip:" & vbtab &_
00049           opacket.sourceipaddress &vbtab&"=> "&_
00050           opacket.destipaddress & vbcrlf
00051       case pktxprotocoltypetcp
00052         otx.value = otx.value & "tcp:" & vbtab &_
00053           opacket.sourceipaddress & "("& opacket.sourceport & ") => "&_
00054           opacket.destipaddress & "(" & opacket.destport & ")" & vbcrlf
00055       case pktxprotocoltypeudp
00056         otx.value = otx.value & "udp:" & vbtab &_
00057           opacket.sourceipaddress & "("& opacket.sourceport & ") => "&_
00058           opacket.destipaddress & "(" & opacket.destport & ")" & vbcrlf
00059     end select
00060   end function
00061 
00062   function printstats(byref ostats)
00063     set otx = document.form1.textarea1
00064     otx.value = otx.value  & ostats.date & " pkts " & ostats.packets & " bytes " & ostats.bytes & vbcrlf
00065   end function
00066 
00067   Function refreshAdapters
00068     '// Reset adapter combo
00069     document.form1.adapters.options.length = 0
00070 
00071     '// Get adapters
00072     On Error Resume Next
00073       Set oAdapters = pktx.Adapters
00074       If Err <> 0 Then
00075         Msgbox Err.Description
00076         Exit Function
00077       End If
00078     On Error Goto 0
00079 
00080   '// Fill adapter combo
00081     For i = 1 To oAdapters.Count
00082       If oAdapters(i).IsGood Then
00083         Set anOption = document.createElement("OPTION")
00084         document.form1.adapters.options.add anOption
00085         anOption.Innertext = RTrim(LTrim((oAdapters(i).Description)))
00086         anOption.Value = i
00087       End If
00088     Next
00089   End Function
00090 -->
00091 </script>
00092 
00093 <form name="form1">
00094   <p>
00095   <select name="adapters">
00096   </select>
00097   <input type="button" name="refresh" value="Refresh" onclick="refreshAdapters()">
00098   </input>
00099   </p>
00100   <p>
00101   <input type="radio" name="mode" value="1" checked>capture
00102   </input>
00103   <input type="checkbox" name="decode" value="1">decode
00104   </input>
00105   <input type="radio" name="mode" value="2">statistics
00106   </input>
00107   </p>
00108 <p>
00109   <textarea name="textarea1" rows="15" cols="60"></textarea>
00110 </p>
00111 <p>
00112   Filter: <input type="text" name="filter" size="60">
00113   </input>
00114 </p>
00115 <p>
00116   <input type="button" name="start" value="Start">
00117   </input>
00118   <input type="button" name="stop" value="Stop">
00119   </input>
00120   <input type="reset" name="reset" value="Reset">
00121   </input>
00122 </p>
00123 
00124 <script language="vbscript" for="start" event="onclick">
00125 <!--
00126  '// Select adapter
00127   on error resume next
00128     pktx.adapter = pktx.adapters(document.form1.adapters.options(document.form1.adapters.selectedIndex).value)
00129     if err <> 0 then
00130       msgbox err.description
00131       exit sub
00132     end if
00133   on error goto 0
00134 
00135  '// Set capture filter
00136   on error resume next
00137     pktx.adapter.bpfilter = document.form1.filter.value
00138     if err <> 0 then
00139       msgbox err.description
00140       exit sub
00141     end if
00142   on error goto 0
00143 
00144  '// Set capture mode (1 capture, 2 statistics)
00145   on error resume next
00146     if document.form1.mode(0).checked = true then pktx.adapter.mode = 1 end if
00147     if document.form1.mode(1).checked = true then pktx.adapter.mode = 2 end if
00148     if err <> 0 then
00149       msgbox err.description
00150       exit sub
00151     end if
00152   on error goto 0
00153 
00154  '// Start capture
00155   on error resume next
00156    pktx.start
00157     if err <> 0 then
00158       msgbox err.description
00159       exit sub
00160     end if
00161   on error goto 0
00162 
00163  '// Disable start button and enable stop button
00164   document.form1.start.disabled = true
00165   document.form1.stop.disabled = false
00166 -->
00167 </script>
00168 <script language="vbscript" for="stop" event="onclick">
00169 <!--
00170   '// Stop capture
00171   on error resume next
00172     pktx.stop
00173    if err <> 0 then
00174       msgbox err.description
00175       exit sub
00176     end if
00177   on error goto 0
00178 
00179  '// Disable stop button and enable start button
00180   document.form1.start.disabled = false
00181   document.form1.stop.disabled = true
00182 -->
00183 </script>
00184 </form>

Copyright © 2000-2007 beeSync. All rights reserved.