资源简介
对pcap包进行解析 获取DNS内容 C语言编写 可以对数据流进行处理
代码片段和文件信息
////////////////////////////////////////////////////////////
// //
// Name : Pcap_DNS_Buffer //
// Time : 2014/08/16 //
// Author : Tao Tianyi //
// Target : Analyse DNS packet //
// //
////////////////////////////////////////////////////////////
#include“UDP_Protocol.h“
#pragma comment(lib“ws2_32.lib“)
void Creat_Buffer(FILE * char * int);
int Deal_PKThead(char * int int * FILE *out);
int Deal_Framhead(char *int *);
int Deal_IPhead(char * int *);
int Deal_UDPhead(char * int * FILE *out);
void Check_request(char * char *);
int Check_answer(char * unsigned long * struct To_Store_Response * );
void Convert_ip(unsigned long * int);
void Crest_Output_Head(FILE *out);
void Creat_Output_Tail(FILE *out);
int main()
{
FILE *fp = NULL *out = NULL;
char *buffer *buffer_head;
int *rest_len; // 数据流剩余长度
int pkt_offsetj;
int Sum_packet = 0; // 数据包总数
int packet_len;
pcap_header = (struct pcap_file_header *)malloc(sizeof(struct pcap_file_header)); // pcap文件报头
pkt_header = (struct pcap_pkthdr *)malloc(sizeof(struct pcap_pkthdr)); // pcap格式中各数据包头部
fram_header = (struct FramHeader_t *)malloc(sizeof(struct FramHeader_t)); // 以太网报头
ip_header = (struct IPHeader_t *)malloc(sizeof(struct IPHeader_t)); // IP数据包报头
udp_header = (struct UDPHeader_t *)malloc(sizeof(struct UDPHeader_t)); // UDP协议数据包报头
Ans_name = (struct To_Store_Response *)malloc(MAXREQ*sizeof(struct To_Store_Response)); // 存储DNS响应附带地址
IP_Adress = (struct To_Store_IP *)malloc(MAXREQ* sizeof(struct To_Store_IP)); // 存储DNS响应附带IP
for (j = 0; j < MAXREQ; j++){
IP_Adress[j].ip = (char *)malloc(IPLENGTH); // 宏定义管理内存申请容量
Ans_name[j].name = (char *)malloc(NAMELENGTH);
memset(IP_Adress[j].ip 0 IPLENGTH);
memset(Ans_name[j].name 0 NAMELENGTH);
}
Buf_Out = (char *)malloc(999999);
//Buf_Out = NULL;
memset(Buf_Out 0 999999);
if ((fp = fopen(“test_all.pcap“ “rb“)) == NULL){
printf(“Fail to open !\n“);
exit(0);
}
if ((out = fopen(“output.html“ “wb“)) == NULL){
printf(“Fail to open !\n“);
exit(0);
}
Crest_Output_Head(out);
fseek(fp 0 SEEK_END);
packet_len = ftell(fp);
fseek(fp 0 SEEK_SET);
fseek(fp 0 SEEK_SET);
buffer = (char *)malloc(packet_len);
memset(buffer 0 packet_len);
Creat_Buffer(fp buffer packet_len);
buffer_head = buffer;
rest_len = &packet_len;
pkt_offset = 24;
*rest_len -= pkt_offset;
buffer += pkt_offset;
while (*rest_len > 0){
++Sum_packet;
if (Deal_PKThead(buffer Sum_packet r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17543 2014-09-01 14:35 对pcap数据流进行DNS分析并使用json整合\Buffer_DNS.cpp
文件 79468 2014-09-01 14:35 对pcap数据流进行DNS分析并使用json整合\output.html
文件 25684 2014-08-29 13:31 对pcap数据流进行DNS分析并使用json整合\output.txt
文件 15131 2014-08-18 14:25 对pcap数据流进行DNS分析并使用json整合\test.pcap
文件 935522 2014-08-20 15:57 对pcap数据流进行DNS分析并使用json整合\test_all.pcap
文件 2819 2014-08-29 09:42 对pcap数据流进行DNS分析并使用json整合\UDP_Protocol.h
文件 8122 2014-08-21 23:16 对pcap文件进行DNS分析\Dealwith_DNS.cpp
文件 15131 2014-08-18 14:25 对pcap文件进行DNS分析\test.pcap
文件 935522 2014-08-20 15:57 对pcap文件进行DNS分析\test_all.pcap
文件 2340 2014-08-18 11:47 对pcap文件进行DNS分析\UDP_Protocol.h
目录 0 2014-09-05 11:02 对pcap数据流进行DNS分析并使用json整合
目录 0 2014-09-05 11:02 对pcap文件进行DNS分析
----------- --------- ---------- ----- ----
2037282 12
- 上一篇:accelerated C++英文版
- 下一篇:使用C++实现HDLC协议
相关资源
- WinPcap数据包捕获程序
- 基于winPcap开发嗅探器c++
- WinPcap 4.0.1和WpdPack 4.0.1
- 简单本地DNS服务器实现代码C++
- 基于WinPcap的网络嗅探器的设计与实现
- 基于winpcap的网络嗅探器C语言源代码
- MFC+winpcap写的抓包程序
- 原创MFC+WinpCap网络嗅探器sniffer
- VC++ 的协议分析器
- 基于WinPcap的网络数据包捕获与分析源
- 基于WinPcap的网络扫描以及端口扫描流
- winPcap4.0.1以及程序员开发包Wpdpack
- 基于winpcap网络嗅探器 VC++ 中科院课设
- MFCWinPcap编写一个嗅探器.zip
- 基于winPcap开发嗅探器c++,带界面
- 基于winpcap的ARP发送程序
- 基于WinpCap的MFC网络抓包程序
- 网络抓包winpcap版本C语言实现
- 基于winPcap的嗅探器源代码
- 基于winpcap网络协议编程
- winpcap抓包并进行协议解析
- 用 WinPCAP 监听并分析 FTP 协议并记录
- DNS中继服务器(含详细实验文档)
- C++实现DNS劫持
- 基于LIBPCAP的网络流量实时采集与信息
- c语言winsock 实现简单域名解析(DNS
- DNS中继服务器C++版
- c++ ipconfig源码(获取ip/dns/网关等信息
- C语言编译的基于Linux下的client与serv
- dns2tcp 官方最新版 + 可用的客户端DN
评论
共有 条评论