• 大小: 84KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-22
  • 语言: 其他
  • 标签: winpcap  

资源简介

基于winpcap协议分析器源代码 网络课程设计题目 需要的拿去吧

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include“ip.h“

#define _W64

#include “pcap.h“
#pragma comment(lib“wpcap.lib“)
#pragma comment(lib“ws2_32“)



int ip_Check_SUM(netp_ip_header *header)   //ip首部检验和。
{
netp_ip_header *temp=header;
unsigned long sum;
int ipLnword;
/*这个步骤是在转载IP报的时候进行的
//将校验和字段值置为0
u_short check=temp->crc;
temp->crc=0x0000;
*/
//计算IP首部长度,并将其转换为字个数
ipL=(header->ver_ihl&0x0f);
nword=(ipL*4)/2;
//构建存储ip首部数据的缓冲数组
//u_short buffer[nword]=temp;
//计算校验和
    for(sum = 0; nword > 0; nword--){

//printf(“狂%04x \n“*((unsigned short *) temp));
        sum +=*((unsigned short *) temp)++;
//if (sum&0x00000000)       /* if high-order bit set fold */
//sum = (sum & 0xFFFF) + (sum>> 16) 
//printf(“校验和为:%04x\n“sum);
}
//printf(“低16位%04x\n“sum&0xFFFF);
//printf(“高位%04x\n“sum>>16);
sum = (sum>>16) + (sum&0xFFFF);
sum += (sum>>16);
//sum=~sum;
if(sum==0xFFFF)
{
return 1;
}
else
return -1;
}
/* prototype of the packet handler */
void packet_handler_ip(u_char *param const struct pcap_pkthdr *header const u_char *pkt_data)
{
struct tm *ltime;
char timestr[16];
netp_ip_header *ih; //定义ip头部指针
int i=0;   //用于判断用户是否继续解析。
int e=0;
time_t local_tv_sec;  //时间

/*
 * unused parameter
 */
(VOID)(param);//  这有什么用?

/* 将时间戳转换成可识别的格式 */
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“ timestr header->ts.tv_usec header->len);


/* 获得IP数据包头部的位置 */
ih = (netp_ip_header *) (pkt_data +14); //length of ethernet header


e=sizeof(ih);
if(ip_Check_SUM(ih)==1)
{
printf(“源ip地址:“);
     printf(“%d.%d.%d.%d\n“
ih->source_address.byte1
ih->source_address.byte2
ih->source_address.byte3
ih->source_address.byte4);
    printf(“目的ip地址:“);
    printf(“%d.%d.%d.%d\n“
ih->destination_address.byte1
ih->destination_address.byte2
ih->destination_address.byte3
ih->destination_address.byte4);
printf(“版本号:%d\n“ih->ver_ihl>>4);
    printf(“首部长度:%d\n“ih->ver_ihl&0x0F); 
    printf(“区分服务:%d\n“ih->diff_services);
    printf(“总长度:%d\n“ntohs(ih->total_length)); 
// printf(“总长度:%d\n“ih->total_length); //区别?为什么把网络序转换到主机序?
    printf(“标识:%d\n“ih->identification); 
    printf(“片偏移:%d\n“);
    printf(“生存时间:%d\n“ih->time_to_live); 
    printf(“首部检验和:%d\n“ih->header_checksum);
    printf(“高层协议类型:%d\n“ih->protocol); 
switch(ih->protocol)
{
case 17:
printf(“(高层协议类型为UDP协议!)\n“);


    case 6:
printf(“(高层协议类型为TCP协议!)\n“);
//开始进行TCP 头部结构的相应的处理.
default:
printf(“(其他协议)\n“);
break;
}
}
else
{
printf(“经计算检验和不为0,丢弃该包!“);
}
printf(“\n“);
printf(“\n“);

}



int IP_AnalyTest()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int inum;
int i=0;
pcap_t *adhandle;
char errbuf[PCAP_ERRBUF_SIZE];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-03-22 10:25  PCAP\
     目录           0  2012-03-22 10:25  PCAP\Debug\
     目录           0  2012-03-20 19:07  PCAP\Include\
     文件        3928  2009-10-07 01:20  PCAP\Include\bittypes.h
     文件        5756  2009-10-07 01:19  PCAP\Include\ip6_misc.h
     文件       16958  2008-11-18 12:26  PCAP\Include\Packet32.h
     目录           0  2012-03-20 19:07  PCAP\Include\pcap\
     文件        2393  2009-10-07 01:20  PCAP\Include\pcap-bpf.h
     文件        2125  2009-10-07 01:20  PCAP\Include\pcap-namedb.h
     文件        2873  2012-03-19 13:01  PCAP\Include\pcap-stdinc.h
     文件        2320  2009-10-07 01:20  PCAP\Include\pcap.h
     文件        2016  2009-10-07 01:20  PCAP\Include\pcap\bluetooth.h
     文件       29111  2009-10-07 01:20  PCAP\Include\pcap\bpf.h
     文件        3421  2009-10-07 01:20  PCAP\Include\pcap\namedb.h
     文件       14058  2010-06-25 09:44  PCAP\Include\pcap\pcap.h
     文件        5567  2009-10-07 01:20  PCAP\Include\pcap\sll.h
     文件        2925  2009-10-07 01:20  PCAP\Include\pcap\usb.h
     文件        2155  2009-10-07 01:20  PCAP\Include\pcap\vlan.h
     文件       14945  2007-09-27 11:32  PCAP\Include\remote-ext.h
     文件        4033  2006-08-09 17:16  PCAP\Include\Win32-Extensions.h
     文件        5195  2012-03-21 23:24  PCAP\ip.c
     文件        1878  2012-03-21 23:23  PCAP\ip.h
     目录           0  2012-03-20 19:07  PCAP\Lib\
     文件       20814  2010-06-25 10:01  PCAP\Lib\libpacket.a
     文件       54276  2010-06-25 10:02  PCAP\Lib\libwpcap.a
     文件        8450  2010-06-25 09:47  PCAP\Lib\Packet.lib
     文件       19320  2010-06-25 09:47  PCAP\Lib\wpcap.lib
     目录           0  2012-03-20 19:07  PCAP\Lib\x64\
     文件        8290  2010-06-25 09:49  PCAP\Lib\x64\Packet.lib
     文件       18892  2010-06-25 09:49  PCAP\Lib\x64\wpcap.lib
     文件        3476  2012-03-21 23:24  PCAP\mac.c
............此处省略11个文件信息

评论

共有 条评论