Explorer.inc

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

<object id=pktx style="display:none" classid="clsid:0276C5E0-FDDD-470D-957C-5A3E2438D7F5"
  codebase="http://www.beesync.com/files/PacketX.dll" viewastext>
<span>
  <font color="red">PacketX control load failed.</font>
</span>
</object>

<script language="vbscript" for="pktx" event="onpacket(byref opacket)">
<!--
  if document.form1.decode.checked then
    decodepacket(opacket)
  else
    printpacket(opacket)
  end if
-->
</script>

<script language="vbscript" for="pktx" event="onstatistics(byref ostats)">
<!--
  printstats(ostats)
-->
</script>

<script language="vbscript">
<!--
  function printpacket(byref opacket)
    set otx = document.form1.textarea1
    otx.value = otx.value  & "----------------------- packet header ---------------------" & vbcrlf
    otx.value = otx.value  & "original size " & opacket.originalsize & " bytes"    & vbcrlf
    otx.value = otx.value  & "capture size  " & opacket.datasize     & " bytes"    & vbcrlf
    otx.value = otx.value  & "capture time  " & opacket.timesec      & " seconds"  & vbcrlf
    otx.value = otx.value  & "capture time  " & opacket.timeusec     & " microsec" & vbcrlf
    otx.value = otx.value  & "capture date  " & opacket.date         & vbcrlf
  end function

  function decodepacket(byref opacket)
    const pktxprotocoltypeethernet = 1
    const pktxprotocoltypeip       = 2
    const pktxprotocoltypeudp      = 3
    const pktxprotocoltypetcp      = 4
    set otx = document.form1.textarea1
    select case opacket.protocol
      case pktxprotocoltypeethernet
        otx.value = otx.value  & "mac:" & vbtab &_
          opacket.sourcemacaddress & vbtab &"=> "&_
          opacket.destmacaddress & vbcrlf
      case pktxprotocoltypeip
        otx.value = otx.value & "ip:" & vbtab &_
          opacket.sourceipaddress &vbtab&"=> "&_
          opacket.destipaddress & vbcrlf
      case pktxprotocoltypetcp
        otx.value = otx.value & "tcp:" & vbtab &_
          opacket.sourceipaddress & "("& opacket.sourceport & ") => "&_
          opacket.destipaddress & "(" & opacket.destport & ")" & vbcrlf
      case pktxprotocoltypeudp
        otx.value = otx.value & "udp:" & vbtab &_
          opacket.sourceipaddress & "("& opacket.sourceport & ") => "&_
          opacket.destipaddress & "(" & opacket.destport & ")" & vbcrlf
    end select
  end function

  function printstats(byref ostats)
    set otx = document.form1.textarea1
    otx.value = otx.value  & ostats.date & " pkts " & ostats.packets & " bytes " & ostats.bytes & vbcrlf
  end function

  Function refreshAdapters
    '// Reset adapter combo
    document.form1.adapters.options.length = 0

    '// Get adapters
    On Error Resume Next
      Set oAdapters = pktx.Adapters
      If Err <> 0 Then
        Msgbox Err.Description
        Exit Function
      End If
    On Error Goto 0

  '// Fill adapter combo
    For i = 1 To oAdapters.Count
      If oAdapters(i).IsGood Then
        Set anOption = document.createElement("OPTION")
        document.form1.adapters.options.add anOption
        anOption.Innertext = RTrim(LTrim((oAdapters(i).Description)))
        anOption.Value = i
      End If
    Next
  End Function
-->
</script>

<form name="form1">
  <p>
  <select name="adapters">
  </select>
  <input type="button" name="refresh" value="Refresh" onclick="refreshAdapters()">
  </input>
  </p>
  <p>
  <input type="radio" name="mode" value="1" checked>capture
  </input>
  <input type="checkbox" name="decode" value="1">decode
  </input>
  <input type="radio" name="mode" value="2">statistics
  </input>
  </p>
<p>
  <textarea name="textarea1" rows="15" cols="60"></textarea>
</p>
<p>
  Filter: <input type="text" name="filter" size="60">
  </input>
</p>
<p>
  <input type="button" name="start" value="Start">
  </input>
  <input type="button" name="stop" value="Stop">
  </input>
  <input type="reset" name="reset" value="Reset">
  </input>
</p>

<script language="vbscript" for="start" event="onclick">
<!--
 '// Select adapter
  on error resume next
    pktx.adapter = pktx.adapters(document.form1.adapters.options(document.form1.adapters.selectedIndex).value)
    if err <> 0 then
      msgbox err.description
      exit sub
    end if
  on error goto 0

 '// Set capture filter
  on error resume next
    pktx.adapter.bpfilter = document.form1.filter.value
    if err <> 0 then
      msgbox err.description
      exit sub
    end if
  on error goto 0

 '// Set capture mode (1 capture, 2 statistics)
  on error resume next
    if document.form1.mode(0).checked = true then pktx.adapter.mode = 1 end if
    if document.form1.mode(1).checked = true then pktx.adapter.mode = 2 end if
    if err <> 0 then
      msgbox err.description
      exit sub
    end if
  on error goto 0

 '// Start capture
  on error resume next
   pktx.start
    if err <> 0 then
      msgbox err.description
      exit sub
    end if
  on error goto 0

 '// Disable start button and enable stop button
  document.form1.start.disabled = true
  document.form1.stop.disabled = false
-->
</script>
<script language="vbscript" for="stop" event="onclick">
<!--
  '// Stop capture
  on error resume next
    pktx.stop
   if err <> 0 then
      msgbox err.description
      exit sub
    end if
  on error goto 0

 '// Disable stop button and enable start button
  document.form1.start.disabled = false
  document.form1.stop.disabled = true
-->
</script>
</form>

Copyright © 2000-2007 beeSync. All rights reserved.