This example demonstrates how to send packets from C#.
using System;
using PacketXLib;
namespace Send
{
class Test
{
[MTAThread]
static void Main(string[] args)
{
PacketXClass oPktX = new PacketXClass();
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.");
}
}
Adapter oAdapter = (Adapter)oPktX.Adapter;
string sHWAddr = oAdapter.HWAddress;
string sIPAddr = oAdapter.NetIP;
string sIPMask = oAdapter.NetMask;
Console.WriteLine("MAC Addr = " + sHWAddr);
Console.WriteLine("IP Addr = " + sIPAddr);
string sIPReso = "11.12.13.14";
char [] aDelimiter = {'.'};
string[] aIPReso = sIPReso.Split(aDelimiter, 4);
string[] aIPAddr = sIPAddr.Split(aDelimiter, 4);
Object[] oPacket = new Object[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
0x08, 0x06, 0x00, 0x01,
0x08, 0x00, 0x06, 0x04, 0x00, 0x01,
Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
Convert.ToByte(aIPAddr[0], 10),
Convert.ToByte(aIPAddr[1], 10),
Convert.ToByte(aIPAddr[2], 10),
Convert.ToByte(aIPAddr[3], 10),
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Convert.ToByte(aIPReso[0], 10),
Convert.ToByte(aIPReso[1], 10),
Convert.ToByte(aIPReso[2], 10),
Convert.ToByte(aIPReso[3], 10),
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
oAdapter.SendPacket(oPacket, 100);
}
}
}