您现在的位置: 公文易 >> 免费论文 >> 计算机论文 >> 论文正文 >> 一个简易网络嗅探器的实现
归档:计算机论文 推荐度:
日期:2006-5-17 5:23:40

一个简易网络嗅探器的实现

字体大小:
一个简易网络嗅探器的实现

摘    要:本文介绍一个用C语言和网络数据包分析开发工具实现的简易网络Sniffer。

      关 键 词:网络;数据包;Sniffer

1 引言
    目前,已经有不少的Sniff工具软件,如Windows环境下,最富盛名的工具是Netxray和Sniffer pro,用它们在 Windows环境下抓包来分析,非常方便。在UNIX环境下如Sniffit,Snoop,Tcpdump,Dsniff 等都是比较常见的。这里介绍一个用C语言和网络数据包和分析开发工具libpcap及winpcap实现的简易网络Sniffer。

2网络嗅探器程序实现
在c环境下编程,源码如下:
/*  June 2nd,2002
 *   Project for graduation qualification By Bby  Team 19   */
#include <stdio.h>
#include <conio.h> 
//必须加路径,必须把头文件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()
{
     //define a pointer to an ADAPTER structure设备指针
     LPADAPTER  lpAdapter = 0;
     //define a pointer to a PACKET structure包指针
     LPPACKET   lpPacket;
     int            i;
     DWORD      dwErrorCode;
     DWORD      dwVersion;
     DWORD      dwWindowsMajorVersion;
     //Unicode strings (WinNT)
     WCHAR            AdapterName[8192]; //网络适配器设备列表
     WCHAR            *temp,*temp1;
     //ASCII strings (Win9x)
     char            AdapterNamea[8192]; //网络适配器设备列表
     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= (DWORD)(LOBYTE(LOWORD(dwVersion)));
这里首先用到的Packet.dll函数是PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize,通常它是与驱动程序通信并被调用的第一个函数,它将返回的用户本地系统中安装的网络适配器的名字放在缓冲区pStr中;BufferSize是缓冲区的长度:
     if (!(dwVersion >= 0x80000000 && dwWindowsMajorVersion >= 4))
     {  //是Windows NT
      // 找不到设备列表
   

[1] [2] [3] [4] [5] 下一页




推荐文章

我得网服务大全:适时新闻 | 秘书资讯 | 专题文档 | 实用查询 | 新华字典,词典 | 成语词典 | 全唐诗 | 歇后语大全
关于我们 | 版权与隐私 | 爱心救助 | 加入会员 | 网站地图 | !报告错误 | 联系方式
公文易爱心文秘网,我得网 © 2003-2009