資源簡介
對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? 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協議
評論
共有 條評論