网络数据包捕获是进行网络分析的基础,
SharpPcap 是一个.NET 环境下的网络包捕获框架,基于著名的 pcap/WinPcap 库开发,提供了捕获、注入、分析和构建的功能,适用于 C# 和 VB NET 开发语言。本次设计我们实现了如何在 VS 环境下借助 WinPcap以及Sharppcap 提供的各个接口函数对网卡进行编程进而对网络数据包进行捕获和分析的方法,突出叙述了数据包捕获在网络分析中的应用
主界面设计(随意)
抓包代码
public partial class MainWindow : Form
{
private CaptureDeviceList devices; //接口列表
public static string[] name = new string[100]; //接口名称
public static int Selectid=-1; //用于捕获的接口的索引
string NowIP=""; //当前接口的IP地址
public static DeviceMode mode; //捕获模式
public bool State=false; //状态(1正在捕获,1未打开)
private BindingSource BS=new BindingSource(); //DataGridView数据绑定
List<ParketAnalysis> listAn = new List<ParketAnalysis>(); //分析数据包容器
private List<ParketStatistics> listSs = new List<ParketStatistics>(); //统计数据包容器
public static Dictionary<string, int> SendCnt = new Dictionary<string, int>(); //用于统计发送到某个IP地址包的数目
public static Dictionary<string, int> ReceiveCnt = new Dictionary<string, int>(); //用于统计接收某个IP地址包的数目
int No = 0; //数据包包编号
object Lock=new object();//线程锁
//过滤部分
string Filter=""; //过滤字段
string FilterIP = ""; //过滤IP
public MainWindow()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
//配置
private void toolStripButton1_Click(object sender, EventArgs e)
{