资源简介
本科时候的课程设计,一个基于WinPcap的抓包软件设计。
代码片段和文件信息
#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;
//将时间戳转化为可识别格式
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 < header->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的抓包软件设计\Design_1\capturethread.cpp
文件 1635 2018-05-07 20:29 基于WinPcap的抓包软件设计\Design_1\capturethread.h
文件 1784 2018-05-30 11:41 基于WinPcap的抓包软件设计\Design_1\Design_1.pro
文件 43796 2018-06-03 13:49 基于WinPcap的抓包软件设计\Design_1\Design_1.pro.user
文件 511 2018-04-29 10:14 基于WinPcap的抓包软件设计\Design_1\dialog.cpp
文件 326 2018-04-29 10:04 基于WinPcap的抓包软件设计\Design_1\dialog.h
文件 5815 2018-04-30 11:19 基于WinPcap的抓包软件设计\Design_1\dialog.ui
文件 1317 2018-05-30 09:56 基于WinPcap的抓包软件设计\Design_1\dialoginfo.cpp
文件 512 2018-05-30 09:55 基于WinPcap的抓包软件设计\Design_1\dialoginfo.h
文件 4786 2018-05-30 10:03 基于WinPcap的抓包软件设计\Design_1\dialoginfo.ui
文件 685 2018-05-30 10:40 基于WinPcap的抓包软件设计\Design_1\dialog_limit.cpp
文件 484 2018-05-30 10:28 基于WinPcap的抓包软件设计\Design_1\dialog_limit.h
文件 4520 2018-05-30 10:29 基于WinPcap的抓包软件设计\Design_1\dialog_limit.ui
文件 544 2018-05-08 08:18 基于WinPcap的抓包软件设计\Design_1\filterthread.cpp
文件 524 2018-05-07 20:20 基于WinPcap的抓包软件设计\Design_1\filterthread.h
文件 586 2018-04-18 13:11 基于WinPcap的抓包软件设计\Design_1\item.cpp
文件 413 2018-04-18 13:11 基于WinPcap的抓包软件设计\Design_1\item.h
文件 6396 2018-04-18 13:12 基于WinPcap的抓包软件设计\Design_1\item.ui
文件 183 2018-04-03 08:52 基于WinPcap的抓包软件设计\Design_1\main.cpp
文件 30789 2018-05-30 11:51 基于WinPcap的抓包软件设计\Design_1\mainwindow.cpp
文件 2924 2018-05-30 11:48 基于WinPcap的抓包软件设计\Design_1\mainwindow.h
文件 25363 2018-05-30 10:28 基于WinPcap的抓包软件设计\Design_1\mainwindow.ui
文件 1594 2018-05-07 10:06 基于WinPcap的抓包软件设计\Design_1\packet.cpp
文件 1148 2018-05-07 10:06 基于WinPcap的抓包软件设计\Design_1\packet.h
文件 2656 2018-05-11 22:35 基于WinPcap的抓包软件设计\Design_1\protocol_header.h
文件 4416 2018-05-11 23:23 基于WinPcap的抓包软件设计\Design_1\saved_packet.cpp
文件 1002 2018-05-11 14:03 基于WinPcap的抓包软件设计\Design_1\saved_packet.h
文件 3108 2018-05-11 08:30 基于WinPcap的抓包软件设计\Design_1\saved_packet.ui
文件 250 2018-05-11 09:59 基于WinPcap的抓包软件设计\Design_1\saving_packet.cpp
文件 329 2018-05-11 10:00 基于WinPcap的抓包软件设计\Design_1\saving_packet.h
............此处省略70个文件信息
- 上一篇:SimpleMall.zip
- 下一篇:iNodecClient智能客户端64位
相关资源
- QT显示解码h264文件显示视频
- Qt实现RTSP视频流播放器
- Qt基于ffmpeg的rtsp视频流接收播放工具
- 客户与服务器程序的同步与通信机制
- Qt5.9.3+mingw530_32+OpenCV3.4.1工程模版
- Qt播放YUV420P文件
- 从零开始学习音视频编程技术十一
- 从零开始学习音视频编程技术八 FFM
- Qt+FFMPEG+SDL实现的视频播放器
- Qt 局域网实时语音通话
- 基于SIFT特征的全景图像拼接(Qt)
- qt串口助手
- Qt超炫日历
- 使用Qt Creator作为Linux IDE,实现Redis源
- OpenGL光照测试Revision演示程序
- 室内环境检测系统.zip
- MQTT单片机编程小工具(技小新).zi
- 基于Qt实现的物流管理系统
- Qt随机迷宫及路径获取
- MQTT客户端
- qt 基于QAudioRecorder实现的录音以及基于
- UFT(QTP 11.5)使用教程 完整中文版
- VS2012 Qt5 winpcap win64 抓包工具 http协议
- qtCodeTools.rar
- OpenCV 3.42 for Qt 5编译好的库
- qt tcp 一个服务端对多个客户端
- Windows环境下供Qt使用的OpenCV库 (已经
- QtXlsxWriter和ActivePerl
- Qt播放视频代码,VS项目
- qt实现类似QQ伸缩窗口--鼠标事件应用
评论
共有 条评论