第一范文网 - 专业文章范例文档资料分享平台

基于winpcap的嗅探器设计与实现 - 图文

来源:用户分享 时间:2025/9/12 14:37:14 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{ struct tcphdr *tcph = (struct tcphdr*)pkt; data->tcph = (struct tcphdr*)malloc(sizeof(struct tcphdr)); if(NULL == data->tcph) return -1; data->tcph->ack_seq = tcph->ack_seq; data->tcph->check = tcph->check; data->tcph->doff = tcph->doff; data->tcph->res1 = tcph->res1; data->tcph->cwr = tcph->cwr; data->tcph->ece = tcph->ece; data->tcph->urg = tcph->urg; data->tcph->ack = tcph->ack; data->tcph->psh = tcph->psh; data->tcph->rst = tcph->rst; data->tcph->syn = tcph->syn; data->tcph->fin = tcph->fin; data->tcph->dport = ntohs(tcph->dport); data->tcph->seq = tcph->seq; data->tcph->sport = ntohs(tcph->sport); data->tcph->urg_ptr = tcph->urg_ptr; data->tcph->window= tcph->window; data->tcph->opt = tcph->opt; //http?? if(ntohs(tcph->dport) == 80 || ntohs(tcph->sport)==80) { npacket->n_http++; strcpy(data->pktType,\); } else{ npacket->n_tcp++; strcpy(data->pktType,\); } return 1; }

/*分析传输层:UDP*/

int analyze_udp(const u_char* pkt,datapkt *data,struct pktcount *npacket) { struct udphdr* udph = (struct udphdr*)pkt; data->udph = (struct udphdr*)malloc(sizeof(struct udphdr)); if(NULL == data->udph ) return -1; data->udph->check = udph->check; data->udph->dport = ntohs(udph->dport);

data->udph->len = ntohs(udph->len); data->udph->sport = ntohs(udph->sport); strcpy(data->pktType,\); npacket->n_udp++; return 1; }

//将数据包以十六进制方式打印出来

void print_packet_hex(const u_char* pkt,int size_pkt,CString *buf) { int i=0,j = 0,rowcount; u_char ch; char tempbuf[256]; memset(tempbuf,0,256); for(i = 0;iAppendFormat(_T(\ \),(u_int)i); rowcount = (size_pkt-i) > 16 ? 16 : (size_pkt-i); for (j = 0; j < rowcount; j++) buf->AppendFormat(_T(\ \),(u_int)pkt[i+j]); if(rowcount <16) for(j=rowcount;j<16;j++) buf->AppendFormat(_T(\ \)); for (j = 0; j < rowcount; j++) {

ch = pkt[i+j];

ch = isprint(ch) ? ch : '.'; buf->AppendFormat(_T(\),ch); } buf->Append(_T(\)); if(rowcount<16) return; }

}

七、设计结果

嗅探器运行初始界面如图2所示

图2.整体结构

嗅探器开始运行后界面如图3所示

图3.运行时的界面

八、软件使用说明

① 选择网卡

② 设置过滤器

③ 点击开始,程序运行 ④ 查看您需要的信息

基于winpcap的嗅探器设计与实现 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2i2e96uymq20sz53256c_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top