最近需要在C#下写一个抓取ARP包的程序,找了好几天,选择了用SharpPcap来做。它的配置简单,功能比较强大。
SharpPcap教程
我在配置的过程中遇到了一些问题,现在把这些问题的解决方法写下来,以免以后忘了,又开始各种痛苦的调试。
先来看看我的环境:win7旗舰版 、VS2010旗舰版、WinPcap4.1.3、SharpPcap4.2.0。
1.安装Winpcap4.1.3(WinPcap4.1.3下载)
2.解压SharpPcap-4.2.0.bin.zip(SharpPcap4.2.0.bin.zip&&SharpPcap4.2.0.src.zip下载)解压后打开debug文件夹,可以看到里面有两个dll文件,这就是我们程序中要用到的东西。SharpPcap-4.2.0.src.zip压缩包中,包含SharpPcap的所有源代码和一些示例程序。
3.打开VS2010,新建一个C#的控制台项目。
4.然后单击“项目”下拉菜单,选择 “添加引用”,在弹出的对话框中单击 “浏览” 选项卡,然后选择第2步中SharpPcap-4.2.0.bin.zip解压后的路径,然后将debug中的SharpPcap.dll添加进去。
5.将下面的代码,粘贴到你的项目中,测试配置是否成功,如果成功则会显示你的网络适配器的信息。
using System;
using System.Collections.Generic;
using SharpPcap;
namespace Example1
{
/// <summary>
/// Obtaining the device list
/// </summary>
public class IfListAdv
{
/// <summary>
/// Obtaining the device list
/// </summary>
public static void Main(string[] args)
{
// Print SharpPcap version
string ver = SharpPcap.Version.VersionString;
Console.WriteLine("SharpPcap {0}, Example1.IfList.cs", ver);
// Retrieve the device list
var devices = CaptureDeviceList.Instance;
// If no devices were found print an error
if(devices.Count < 1)
{
Console.WriteLine("No devices were found on this machine");
return;
}
Console.WriteLine("\nThe following devices are available on this machine:");
Console.WriteLine("----------------------------------------------------\n");
/* Scan the list printing every entry */
foreach(var dev in devices)
Console.WriteLine("{0}\n",dev.ToString());
Console.Write("Hit 'Enter' to exit...");
Console.ReadLine();
}
}
}
需要注意的问题:
1.如果你要用SharpPcap3.5,那么你在新建项目时.Net FrameWork 要选成3.5,(vs2010默认是4.0),否则运行时会出现错误。
2.如果你用的是SharpPcap高版本的dll,测试示例程序时最好不要用低版本的,否则可能会出错。楼主测试的时候,dll用的是SharpPcap4.2的,示例程序用的是SharpPcap3.5的,生成时会出现错误。
分享到:
相关推荐
命名空间"SharpPcap"中不存在类型或命名空间名称"Packets".是否缺少程序集引,引用其他SharpPcap.dll会报错,如前所述。引用这个dll可以解决问题。
sharppcap是基于winpcap的局域网抓包工具,该文档说明了在使用网卡混杂模式监听整个局域网数据包时的限制和一些解决办法。
SharpPcap 的中文开发支持 机翻人改。
对于这个美丽的SharpPcap开发包,其实很多功能里面都封装好了,而且加入了很多c#的特性,对于这种弱类型的语言,不必象在vc里面要仔细操作数据的类型,搞的一不小心就出错,对于SharpPcap这个库,是一个老外2006年写的吧,他...
SharpPcap开发实例
sharppcap学习的一些资料,希望对大家有帮助。
SharpPcap 是一个.NET 环境下的网络包捕获框架,基于著名的 pcap/WinPcap 库开发。提供了捕获、注入、分析和构建的功能,适用... packet.net是数据包分析器 包含在SharpPcap中 官网 http://sharppcap.sourceforge.net/
有名的网络抓包工具的dll,在项目中引用sharppcap.dll后可以使用
c#,sharppcap,可以用它开发....arp期骗,临听工具
SharpPcap3.4,.NET平台最好的抓包发包开发组件
基于SharpPcap的协议分析器,可以捕获所有的数据包,分析数据包,指定IP的数据包捕获,FTP用户名密码捕获,存储和载入文件的功能。 基于SharpPcap的协议分析器,可以捕获所有的数据包,分析数据包,指定IP的...
c# 抓包 sharpPcap 3.30版
在多个以太网口的电脑上,使用SharpPcap来抓包的时候需要选择网口,但是SharpPcap里面的网口名字和微软系统里面的网口名字又不相同,“控制面板\网络和 Internet\网络连接”里面的网口名字可以通过NetworkInterface...
基于sharpPcap的局域网数据包所需要安装的winPcap程序,和开发时候所需要添加的引用dll
SharpPcap.dll中包含网络编程中常用的一些函数,利用它们能在底层发送数据包。
这个是英文的说明书了,呵呵。加点分引导大家下载中文的说明书。
Sharppcap,.net环境下最好的抓包工具。
WinPcap与SharpPcap最新版本组合
SharpPcap_3.4.0_开发全攻略(中文版) 里面附有sharppcap3.3的开发文档与一些案例程序
SharpPcap 是一个.NET 环境下的...本次设计我们实现了如何在 VS 环境下借助 WinPcap以及Sharppcap 提供的各个接口函数对网卡进行编程进而对网络数据包进行捕获和分析的方法,突出叙述了数据包捕获在网络分析中的应用