• 大小: 3.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: 其他
  • 标签: c语言  

资源简介

网络课程设计中的网络协议分析器。能实现协议分析器捕获、分析数据包功能。支持以太网MAC协议、IP和TCP/UDP协议的分析,并实现了ARP,ICMP,IGMP协议的分析,提取各个协议的字段值,能进行简单的过滤。基于winpcap开源包1.2 开发环境 Microsoft Visual Studio .NET 2003,WinPcap 4.1.2

资源截图

代码片段和文件信息

#include “pcap.h“
#include “Analyse.h“
int n=1;



/* 每次捕获到数据包时,libpcap都会自动调用这个回调函数 */
void packet_handler(u_char *param const struct pcap_pkthdr *header const u_char *pkt_data)
{

    
    struct tm *ltime;
    char timestr[16];
time_t local_tv_sec;
struct ether_header *ether_header;
int ether_type; //协议类型

   
printf(“\n*********************************************捕获第%d个数据包******************\n“n);
n=n+1;

    
/*-------------------------------------------------时间戳显示------------------------------------------------------------*/

    /* 将时间戳转换成可识别的格式 */
local_tv_sec = header->ts.tv_sec;
    ltime=localtime(&local_tv_sec);
    strftime( timestr sizeof timestr “%H:%M:%S“ ltime);

    /* 打印数据包的时间戳和长度 */
    printf(“--时间戳%s. %.6d   len:%d\n\r“ timestr header->ts.tv_usec header->len);


/*--------------------------------------------------数据包分析----------------------------------------------------------*/
    
 printf(“Ethernet 802.3------------------------------------\n\r“);
 ether_header=(struct ether_header *)pkt_data;

  printf(“--目的mac地址=%02x:%02x:%02x:%02x:%02x:%02x\n“
        ether_header->ether_dhost[0]
        ether_header->ether_dhost[1]
        ether_header->ether_dhost[2]
        ether_header->ether_dhost[3]
        ether_header->ether_dhost[4]
        ether_header->ether_dhost[5]);
 
 printf(“--源mac地址=%02x:%02x:%02x:%02x:%02x:%02\n“
ether_header->ether_shost[0]
ether_header->ether_shost[1]
ether_header->ether_shost[2]
ether_header->ether_shost[3]
ether_header->ether_shost[4]
ether_header->ether_shost[5]);

  ether_type=ntohs(ether_header->ether_type);
  printf(“--协议类型或数据长度=%04x“ether_type);

   switch(ether_type)
{

case 0x0800: 
printf(“ (IP协议)\n\r“);//IP协议分析
ip_Analyse(pkt_data);
break;


case 0x0806: 
printf(“ (ARP协议)\n\r“);//ARP协议分析
arp_Analyse(pkt_data);        
break;

default:
printf(“\n\r未知类型数据报:0x%0X\n“ether_type);
break;
}
}
unsigned short check_sum(unsigned short *bufint nword)        //首部校验和的计算
{
unsigned long sum;
for(sum=0;nword>0;nword--)
{
sum+=*buf++;
}
sum=(sum>>16)+(sum&0xffff);
sum=sum+(sum>>16);
if(sum==0xFFFF)
{
return 1;
}
else
return -1;
}



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-10 10:35  Analyse\
     文件        2405  2012-03-23 13:45  Analyse\Analyse.c
     文件        3742  2012-03-22 20:47  Analyse\Analyse.h
     文件      142336  2012-03-23 19:50  Analyse\Analyse.ncb
     文件         903  2012-03-20 15:47  Analyse\Analyse.sln
     文件       10752  2012-03-23 19:50  Analyse\Analyse.suo
     文件        3959  2012-03-22 20:32  Analyse\Analyse.vcproj
     文件        2071  2012-03-22 14:20  Analyse\arp_Analyse.c
     目录           0  2012-05-10 10:34  Analyse\Debug\
     文件      188416  2012-05-05 13:40  Analyse\Debug\Analyse.exe
     文件      513356  2012-03-23 18:17  Analyse\Debug\Analyse.ilk
     文件      181209  2012-03-23 13:45  Analyse\Debug\Analyse.obj
     文件     4390912  2012-03-23 13:45  Analyse\Debug\Analyse.pch
     文件     1551360  2012-03-23 18:17  Analyse\Debug\Analyse.pdb
     文件      180996  2012-03-22 20:47  Analyse\Debug\arp_Analyse.obj
     文件         810  2012-03-23 19:37  Analyse\Debug\BuildLog.htm
     文件      179283  2012-03-23 18:17  Analyse\Debug\icmp_Analyse.obj
     文件      179553  2012-03-23 18:17  Analyse\Debug\igmp_Analyse.obj
     文件      185164  2012-03-22 20:47  Analyse\Debug\ip_Analyse.obj
     文件      184052  2012-03-23 18:17  Analyse\Debug\tcp_Analyse.obj
     文件      178729  2012-03-23 18:17  Analyse\Debug\udp_Analyse.obj
     文件       33792  2012-05-10 10:34  Analyse\Debug\vc60.idb
     文件       28672  2012-05-10 10:34  Analyse\Debug\vc60.pdb
     文件      232448  2012-03-23 18:17  Analyse\Debug\vc70.idb
     文件      634880  2012-03-23 18:17  Analyse\Debug\vc70.pdb
     文件        1032  2012-03-23 18:17  Analyse\icmp_Analyse.c
     文件        1135  2012-03-23 18:17  Analyse\igmp_Analyse.c
     目录           0  2012-04-10 10:06  Analyse\Include\
     文件        3928  2009-10-07 01:20  Analyse\Include\bittypes.h
     文件        5756  2009-10-07 01:19  Analyse\Include\ip6_misc.h
     文件       16958  2008-11-18 12:26  Analyse\Include\Packet32.h
............此处省略27个文件信息

评论

共有 条评论