Decode.cs
This example demonstrates how to decode packets from C#.
- See also:
- PacketX , Packet , SourceMacAddress , SourceIpAddress , SourcePort
using System;
using PacketXLib;
namespace Decode
{
class Test
{
[MTAThread]
static void Main(string[] args)
{
PacketXClass oPktX = new PacketXClass();
oPktX.OnPacket += new _IPktXPacketXEvents_OnPacketEventHandler(PacketX_OnPacket);
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);
}
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.");
}
}
oPktX.Start();
System.Threading.Thread.Sleep(30000);
oPktX.Stop();
}
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;
}
}
}
}