C# 利用SharpPcap实现网络包捕获嗅探

本文介绍了如何利用SharpPcap库在C#环境中进行网络包捕获和嗅探,讲解了SharpPcap的基础概念和工作原理,包括通过Process获取端口信息,使用netstat命令,以及SharpPcap的设备列表、数据包接收和PacketDotNet解析数据包的步骤。示例代码展示了捕获特定端口数据包的功能。

本文是利用SharpPcap实现网络包的捕获的小例子,实现了端口监控,数据包捕获等功能,主要用于学习分享。

什么是SharpPcap?

SharpPcap 是一个.NET 环境下的网络包捕获框架,基于著名的 pcap/WinPcap 库开发。提供了捕获、注入、分析和构建的功能,适用于 C# 和 VB NET 开发语言。

SharpPcap有两部分组成:1> SharpPcap.dll 负责数据的捕获  2> PacketDotNet.dll负责数据包的解析

思路:

  1. 通过进程名字获取对应的端口号。
  2. SharpPcap获取对应的数据包,通过解析数据包过滤相关的端口。

涉及知识点:

  • Process 获取相关进程信息。
  • netstat命令:netstat -ano|find "3844" 获取进程对应的端口
  • SharpPcap相关信息:
    • 通过CaptureDeviceList的静态方法获取设备列表。
    • 通过OnPacketArrival事件接收数据包。
    • 通过PacketDotNet来解析数据包

效果图下:

SharpPcap核心代码:

  1         /// <summary>
  2         /// 开始捕捉
  3         /// </summary>
  4         /// <param name="sender"></param>
  5         /// <param name="e"></param>
  6         private void btnStart_Click(object sender, EventArgs e)
  7         {
  8             if (this.combDevice.SelectedIndex > -1)
  9             {
 10                 StartCapture(this.combDevice.SelectedIndex);
 11                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值