Send.cs

This example demonstrates how to send packets from C#.
See also:
PacketX , Adapter , SendPacket
00001 
00002 // File:         Send.cs
00003 //
00004 // Description:  This script demonstrates how to send packets from C#
00005 //
00006 // Notes:        tlbimp PacketX.dll && csc /R:PacketXLib.dll Send.cs
00007 //
00008 // Created:      May 26, 2004
00009 //
00010 // Copyright (c) 2000-2004 BeeSync Technologies.
00012 
00013 using System;
00014 using PacketXLib;
00015 
00016 namespace Send
00017 {
00018   class Test 
00019   {
00021     [MTAThread]
00022     static void Main(string[] args)
00023     {
00025       PacketXClass oPktX = new PacketXClass();
00026       
00027       // Display network adapters
00028       AdapterCollection oAdapters = (AdapterCollection)oPktX.Adapters;
00029       for (int i = 0; i < oAdapters.Count ; i++) 
00030       {
00031         if (Convert.ToBoolean(oAdapters[i+1].IsGood))         
00032           Console.WriteLine("(" + (i+1) + ") " + oAdapters[i+1].Description);
00033       }
00034       // Select network adapter
00035       oPktX.Adapter = null;
00036       while (oPktX.Adapter == null)
00037       {
00038         Console.Write("Choose adapter#");
00039         try 
00040         { 
00041           int nSelected = Convert.ToInt16(Console.ReadLine().Trim(),10);
00042           oPktX.Adapter = oAdapters[nSelected];
00043         }
00044         catch (System.Exception)
00045         {
00046           Console.WriteLine("Invalid adapter number.");
00047         }
00048       }
00049 
00050       // Get adapter hardware address and IP address
00051       Adapter oAdapter = (Adapter)oPktX.Adapter;
00052       string sHWAddr = oAdapter.HWAddress;
00053       string sIPAddr = oAdapter.NetIP;
00054       string sIPMask = oAdapter.NetMask;
00055       Console.WriteLine("MAC Addr = " + sHWAddr);
00056       Console.WriteLine("IP  Addr = " + sIPAddr);
00057 
00058       // Send ARP request for this IP address
00059       string sIPReso = "11.12.13.14";
00060       char [] aDelimiter = {'.'};
00061       string[] aIPReso = sIPReso.Split(aDelimiter, 4);
00062       string[] aIPAddr = sIPAddr.Split(aDelimiter, 4);
00063 
00064       // Build ARP packet
00065       Object[] oPacket = new Object[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
00066         Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
00067         Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
00068         Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
00069         Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
00070         Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
00071         Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
00072         0x08, 0x06, 0x00, 0x01,
00073         0x08, 0x00, 0x06, 0x04, 0x00, 0x01,
00074         Convert.ToByte("0x" + sHWAddr.Substring(0,2), 16),
00075         Convert.ToByte("0x" + sHWAddr.Substring(2,2), 16),
00076         Convert.ToByte("0x" + sHWAddr.Substring(4,2), 16),
00077         Convert.ToByte("0x" + sHWAddr.Substring(6,2), 16),
00078         Convert.ToByte("0x" + sHWAddr.Substring(8,2), 16),
00079         Convert.ToByte("0x" + sHWAddr.Substring(10,2), 16),
00080         Convert.ToByte(aIPAddr[0], 10),
00081         Convert.ToByte(aIPAddr[1], 10),
00082         Convert.ToByte(aIPAddr[2], 10),
00083         Convert.ToByte(aIPAddr[3], 10),
00084         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00085         Convert.ToByte(aIPReso[0], 10),
00086         Convert.ToByte(aIPReso[1], 10),
00087         Convert.ToByte(aIPReso[2], 10),
00088         Convert.ToByte(aIPReso[3], 10),
00089         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00090         0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00091         0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
00092 
00093       // Send 100 ARP requests      
00094       oAdapter.SendPacket(oPacket, 100);
00095     }
00096   }
00097 }
00098 

Copyright © 2000-2007 beeSync. All rights reserved.