• 大小: 16.25MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: 其他
  • 标签: 抓包  WinPcap  Qt  

资源简介

本科时候的课程设计,一个基于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个文件信息

评论

共有 条评论