C葃g gはバッグの実例コードを実現します。


工具:SharpPcap 4.2.0
vsプロジェクト:コンソールアプリケーション
C〓〓〓〓〓に関して、私はSharpPcapのこのdllだけを探し当てて、関連している資料は多くなくて、その上すべてとても古いので、ついでに自分のコードを覚えてみて、同じ需要の人に1つの参考をあげましょう。
もちろん、コードに問題があるかもしれません。ご了承ください。
一、接続機器の取得

//       
CaptureDeviceList devices = CaptureDeviceList.Instance;

//    
if (devices.Count < 1)
{
  Console.WriteLine("No devices were found on this machine");
  return;
}

Console.WriteLine("
:"); Console.WriteLine("--------------
"); int j=0; string temp = ""; Regex r = new Regex("FriendlyName: .*
"); // FriendlyName Match m; // foreach (ICaptureDevice dev in devices) { temp = dev.ToString(); m = r.Match(temp); Console.WriteLine("{0}:{1}
", j++, m.ToString()); } Console.Write(" "); string input = Console.ReadLine(); int i = 0; try { i = Int32.Parse(input); } catch (Exception e) { Console.WriteLine(" !"+e.Message); return; } if (devices.Count < 1 || i == -1) { Console.WriteLine(" !"); return; } // ICaptureDevice device = devices[i];
二、接続を開く

//   “   ”  
device.OnPacketArrival +=new SharpPcap.PacketArrivalEventHandler(device_OnPacketArrival);

//     
int readTimeoutMilliseconds = 1000;
device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);
三、フィルタの設定

//           1234 tcp 
string filter = "tcp dst port 1234";
device.Filter = filter;
四、取得開始

//         
device.Capture();
五、カバンの処理方法

private static void device_OnPacketArrival(object sender, CaptureEventArgs e)
{
  //     (Ethernet)  
  var ent = PacketDotNet.EthernetPacket.ParsePacket(LinkLayers.Ethernet, e.Packet.Data);
  //  ip 
  var ip = ent.PayloadPacket;
  //  tcp 
  var tcp = ip.PayloadPacket;
  //   tcp ,     tcp      
  var tcp_packet = new TcpPacket(new ByteArraySegment(tcp.Bytes));
  if (tcp != null)
  {
    DateTime time = e.Packet.Timeval.Date;
    if (tcp.PayloadData != null)
    {
      //    ,  tcp data  
      string str = BitConverter.ToString(tcp.PayloadData);
      /*
      *
            
      *
      */
    }
  }
}
六、技術には限りがあります。この程度しかできません。
以上はC铉のパッケージを実現するための実例コードの詳細です。C铉のバッグに関する資料は他の関連記事に注目してください。