这里介绍一个用C语言和网络数据包和分析开发工具libpcap及winpcap实现的简易网络Sniffer。
2网络嗅探器程序实现
在c环境下编程,源码如下:
#include
#include
//必须加路径,必须把头文件packet32.h包含进去
#include "../../Include/packet32.h"
#include "../../Include/ntddndis.h"
#define Max_Num_Adapter 10
// Prototypes原形
void PrintPackets(LPPACKET lpPacket); //发包
char AdapterList[Max_Num_Adapter][1024]; //设备列表
// 主程序开始
int main()
{
LPADAPTER lpAdapter = 0; //define a pointer to an ADAPTER structure设备指针
LPPACKET lpPacket; //define a pointer to a PACKET structure包指针
int i;
DWORD dwErrorCode;
DWORD dwVersion;
DWORD dwWindowsMajorVersion;
WCHAR AdapterName[8192]; //网络适配器设备列表 //Unicode strings (WinNT)
WCHAR *temp,*temp1;
char AdapterNamea[8192]; //网络适配器设备列表 //ASCII strings (Win9x)
char *tempa,*temp1a;
int AdapterNum=0,Open;
ULONG AdapterLength;
char buffer[256000]; // 容纳来自驱动器的数据的缓冲区
struct bpf_stat stat;
// 获得本机网卡名
AdapterLength=4096;
printf("Packet.dll test application. Library version:%s/n", PacketGetVersion());
printf("Adapters installed:/n");
i=0;
下面这段代码是用来在不同版本下得到网络适配器名:
Win9x 和WinNT中的网卡名称是分别用ASCII和UNICODE实现的,所以首先要得到本地操作系统的版本号.:
dwVersion=GetVersion();
dwWindowsMajorVersion=
C语言实现网络嗅探器
最新推荐文章于 2023-08-26 10:53:19 发布
本文介绍了如何利用C语言,结合libpcap和winpcap库,开发一个简单的网络嗅探器。通过示例代码展示了如何在Windows环境下设置网络适配器,捕获并打印数据包,以及处理网络包的主要流程。同时,强调了网络嗅探器对于理解网络管理和信息安全的重要性。

最低0.47元/天 解锁文章
1251





