資源簡介
本科時候的課程設(shè)計,一個基于WinPcap的抓包軟件設(shè)計。
代碼片段和文件信息
#include?“capturethread.h“
#include?“protocol_header.h“
CaptureThread::CaptureThread(Qobject?*parent)?:?QThread(parent)
{
}
void?CaptureThread::setDevice(pcap_if_t?*dd)
{
????d?=?dd;
}
void?CaptureThread::run()
{
????int?res;
????struct?pcap_pkthdr?*header;
????const?u_char?*pkt_data;
????time_t?local_tv_sec;
????struct?tm?*ltime;
????char?timestr[16];
????int?count?=?1;
????int?i?=?0?inum;
????//打開適配器
????if?((fp?=?pcap_open_live(d->name?65536?1?1000?errbuf))?==?NULL)
????{
????????qDebug(“\nError?openning?adapter:?%s\n“?errbuf);
????????pcap_freealldevs(alldevs);
????????return;
????}
????//檢查鏈路層的類型
//????if?(pcap_datalink(fp)?!=?DLT_EN10MB)
//????{
//????????qDebug(“This?program?only?run?on?Ethernet?networks\n“);
//????????pcap_close(fp);
//????????pcap_freealldevs(alldevs);
//????}
//????qDebug(“The?program?is?working......\n“);
//????qDebug(“The?capture?file?is?saving?as?‘data.txt‘\n“);
//????qDebug(“You?can?input?‘ctrl?+?C‘?to?stop?the?program\n“);
????while?((res?=?pcap_next_ex(fp?&header?&pkt_data))?>=?0)
????????{
????????????//超時
????????????if?(res?==?0)
????????????????continue;
????????????//將時間戳轉(zhuǎn)化為可識別格式
????????????local_tv_sec?=?header->ts.tv_sec;
????????????ltime?=?localtime(&local_tv_sec);
????????????strftime(timestr?sizeof(timestr)?“%H:%M:%S“?ltime);
????????????QString?data_str;
????????????char?temp[LINE_LEN?+?1];
????????????for(int?i=0;icaplen;i++)
????????????{
????????????????QString?str;
????????????????str.sprintf(“%.2x?“?pkt_data[i]);
????????????????data_str.append(str);
????????????????if?(isgraph(pkt_data[i])?||?pkt_data[i]?==?‘?‘)
????????????????????temp[i?%?LINE_LEN]?=?pkt_data[i];
????????????????else
????????????????????temp[i?%?LINE_LEN]?=?‘.‘;
????????????????if?(i?%?LINE_LEN?==?15)
????????????????{
????????????????????temp[16]?=?‘\0‘;
????????????????????data_str.append(“??????“);
????????????????????data_str.append(temp);
????????????????????data_str.append(“\n“);
????????????????????memset(temp?0?LINE_LEN);
????????????????}
????????????}
????????????packet_data.setPacket_Data(data_str);
????????????packet_data.setTime(timestr);
????????????packet_data.setLen(header->len);
????????????//輸出編號、時間戳和包長度
//????????????qDebug(“==============================================================================\n“);
//????????????qDebug(“No.%d\ttime:?%s\tlen:?%ld\t?%.6d\n“?count++?timestr?header->lenlocal_tv_sec);
//????????????qDebug(“==============================================================================\n“);
//????????????char?temp[LINE_LEN?+?1];
//????????????//輸出包
//????????????for?(i?=?0;?i?caplen;?++i)
//????????????{
//????????????????qDebug(“%.2x?“?pkt_data[i]);
//????????????????if?(isgraph(pkt_data[i])?||?pkt_data[i]?==?‘?‘)
//????????????????????temp[i?%?LINE_LEN]?=?pkt_data[i];
//????????????????else
//????????????????????temp[i?%?LINE_LEN]?=?‘.‘;
//?????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14773??2018-05-07?10:06??基于WinPcap的抓包軟件設(shè)計\Design_1\capturethread.cpp
?????文件???????1635??2018-05-07?20:29??基于WinPcap的抓包軟件設(shè)計\Design_1\capturethread.h
?????文件???????1784??2018-05-30?11:41??基于WinPcap的抓包軟件設(shè)計\Design_1\Design_1.pro
?????文件??????43796??2018-06-03?13:49??基于WinPcap的抓包軟件設(shè)計\Design_1\Design_1.pro.user
?????文件????????511??2018-04-29?10:14??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog.cpp
?????文件????????326??2018-04-29?10:04??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog.h
?????文件???????5815??2018-04-30?11:19??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog.ui
?????文件???????1317??2018-05-30?09:56??基于WinPcap的抓包軟件設(shè)計\Design_1\dialoginfo.cpp
?????文件????????512??2018-05-30?09:55??基于WinPcap的抓包軟件設(shè)計\Design_1\dialoginfo.h
?????文件???????4786??2018-05-30?10:03??基于WinPcap的抓包軟件設(shè)計\Design_1\dialoginfo.ui
?????文件????????685??2018-05-30?10:40??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog_limit.cpp
?????文件????????484??2018-05-30?10:28??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog_limit.h
?????文件???????4520??2018-05-30?10:29??基于WinPcap的抓包軟件設(shè)計\Design_1\dialog_limit.ui
?????文件????????544??2018-05-08?08:18??基于WinPcap的抓包軟件設(shè)計\Design_1\filterthread.cpp
?????文件????????524??2018-05-07?20:20??基于WinPcap的抓包軟件設(shè)計\Design_1\filterthread.h
?????文件????????586??2018-04-18?13:11??基于WinPcap的抓包軟件設(shè)計\Design_1\item.cpp
?????文件????????413??2018-04-18?13:11??基于WinPcap的抓包軟件設(shè)計\Design_1\item.h
?????文件???????6396??2018-04-18?13:12??基于WinPcap的抓包軟件設(shè)計\Design_1\item.ui
?????文件????????183??2018-04-03?08:52??基于WinPcap的抓包軟件設(shè)計\Design_1\main.cpp
?????文件??????30789??2018-05-30?11:51??基于WinPcap的抓包軟件設(shè)計\Design_1\mainwindow.cpp
?????文件???????2924??2018-05-30?11:48??基于WinPcap的抓包軟件設(shè)計\Design_1\mainwindow.h
?????文件??????25363??2018-05-30?10:28??基于WinPcap的抓包軟件設(shè)計\Design_1\mainwindow.ui
?????文件???????1594??2018-05-07?10:06??基于WinPcap的抓包軟件設(shè)計\Design_1\packet.cpp
?????文件???????1148??2018-05-07?10:06??基于WinPcap的抓包軟件設(shè)計\Design_1\packet.h
?????文件???????2656??2018-05-11?22:35??基于WinPcap的抓包軟件設(shè)計\Design_1\protocol_header.h
?????文件???????4416??2018-05-11?23:23??基于WinPcap的抓包軟件設(shè)計\Design_1\saved_packet.cpp
?????文件???????1002??2018-05-11?14:03??基于WinPcap的抓包軟件設(shè)計\Design_1\saved_packet.h
?????文件???????3108??2018-05-11?08:30??基于WinPcap的抓包軟件設(shè)計\Design_1\saved_packet.ui
?????文件????????250??2018-05-11?09:59??基于WinPcap的抓包軟件設(shè)計\Design_1\saving_packet.cpp
?????文件????????329??2018-05-11?10:00??基于WinPcap的抓包軟件設(shè)計\Design_1\saving_packet.h
............此處省略70個文件信息
- 上一篇:SimpleMall.zip
- 下一篇:iNodecClient智能客戶端64位
評論
共有 條評論