Decode.cs

This example demonstrates how to decode packets from C#.
See also:
PacketX , Packet , SourceMacAddress , SourceIpAddress , SourcePort
// File:         Decode.cs
//
// Description:  This script demonstrates how to decode packets
//
// Notes:        tlbimp PacketX.dll && csc /R:PacketXLib.dll Decode.cs
//
// Created:      May 10, 2004
//
// Copyright (c) 2000-2004 BeeSync Technologies.

using System;
using PacketXLib;

namespace Decode
{
  class Test 
  {
    // The main entry point for the application.
    [MTAThread]
    static void Main(string[] args)
    {
      // Create PacketX object
      PacketXClass oPktX = new PacketXClass();
      oPktX.OnPacket += new _IPktXPacketXEvents_OnPacketEventHandler(PacketX_OnPacket);
      
      // Display network adapters
      AdapterCollection oAdapters = (AdapterCollection)oPktX.Adapters;
      for (int i = 0; i < oAdapters.Count ; i++) 
      {
        if (Convert.ToBoolean(oAdapters[i+1].IsGood)) 
          Console.WriteLine("(" + (i+1) + ") " + oAdapters[i+1].Description);
      }
      // Select network adapter
      oPktX.Adapter = null;
      while (oPktX.Adapter == null)
      {
        Console.Write("Choose adapter#");
        try { 
          int nSelected = Convert.ToInt16(Console.ReadLine().Trim(),10);
          oPktX.Adapter = oAdapters[nSelected];
        }
        catch (System.Exception){
          Console.WriteLine("Invalid adapter number.");
        }
      }
      // Start capture
      oPktX.Start();
      System.Threading.Thread.Sleep(30000);                 
      oPktX.Stop();
    }

    // OnPacket event handler.
    static void PacketX_OnPacket(Packet oPacket)
    {
      switch(oPacket.Protocol)
      {
        case(PktXProtocolType.PktXProtocolTypeEthernet):
          Console.WriteLine("MAC:\t" + oPacket.SourceMacAddress + "\t=> " + 
            oPacket.DestMacAddress);            
          break;
        case(PktXProtocolType.PktXProtocolTypeIP):
          Console.WriteLine("IP:\t" + oPacket.SourceIpAddress + "\t=> " + 
            oPacket.DestIpAddress);            
          break;
        case(PktXProtocolType.PktXProtocolTypeTCP):
          Console.WriteLine("TCP:\t" + oPacket.SourceIpAddress + "\t=> " + 
            oPacket.DestIpAddress + "\t" + oPacket.SourcePort + "\t=> " + 
            oPacket.DestPort);            
          break;
        case(PktXProtocolType.PktXProtocolTypeUDP):
          Console.WriteLine("UDP:\t" + oPacket.SourceIpAddress + "\t=> " + 
            oPacket.DestIpAddress + "\t" + oPacket.SourcePort + "\t=> " + 
            oPacket.DestPort);            
          break;
      }
    }
  }
}


Copyright © 2000-2007 beeSync. All rights reserved.