基于WinPcap的抓包软件设计


本科时候的课程设计,一个基于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(“
Error openning adapter: %s
“ errbuf);
        pcap_freealldevs(alldevs);
        return;
    }
    //检查链路层的类型
//    if (pcap_datalink(fp) != DLT_EN10MB)
//    {
//        qDebug(“This program only run on Ethernet networks
“);
//        pcap_close(fp);
//        pcap_freealldevs(alldevs);
//    }
//    qDebug(“The program is working......
“);
//    qDebug(“The capture file is saving as ‘data.txt‘
“);
//    qDebug(“You can input ‘ctrl + C‘ to stop the program
“);
    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] = ‘‘;
                    data_str.append(“      “);
                    data_str.append(temp);
                    data_str.append(“
“);
                    memset(temp 0 LINE_LEN);
                }
            }

            packet_data.setPacket_Data(data_str);
            packet_data.setTime(timestr);
            packet_data.setLen(header->len);


            //输出编号、时间戳和包长度
//            qDebug(“==============================================================================
“);
//            qDebug(“No.%d time: %s len: %ld  %.6d
“ count++ timestr header->lenlocal_tv_sec);
//            qDebug(“==============================================================================
“);
//            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_1capturethread.cpp

     文件       1635  2018-05-07 20:29  基于WinPcap的抓包软件设计Design_1capturethread.h

     文件       1784  2018-05-30 11:41  基于WinPcap的抓包软件设计Design_1Design_1.pro

     文件      43796  2018-06-03 13:49  基于WinPcap的抓包软件设计Design_1Design_1.pro.user

     文件        511  2018-04-29 10:14  基于WinPcap的抓包软件设计Design_1dialog.cpp

     文件        326  2018-04-29 10:04  基于WinPcap的抓包软件设计Design_1dialog.h

     文件       5815  2018-04-30 11:19  基于WinPcap的抓包软件设计Design_1dialog.ui

     文件       1317  2018-05-30 09:56  基于WinPcap的抓包软件设计Design_1dialoginfo.cpp

     文件        512  2018-05-30 09:55  基于WinPcap的抓包软件设计Design_1dialoginfo.h

     文件       4786  2018-05-30 10:03  基于WinPcap的抓包软件设计Design_1dialoginfo.ui

     文件        685  2018-05-30 10:40  基于WinPcap的抓包软件设计Design_1dialog_limit.cpp

     文件        484  2018-05-30 10:28  基于WinPcap的抓包软件设计Design_1dialog_limit.h

     文件       4520  2018-05-30 10:29  基于WinPcap的抓包软件设计Design_1dialog_limit.ui

     文件        544  2018-05-08 08:18  基于WinPcap的抓包软件设计Design_1filterthread.cpp

     文件        524  2018-05-07 20:20  基于WinPcap的抓包软件设计Design_1filterthread.h

     文件        586  2018-04-18 13:11  基于WinPcap的抓包软件设计Design_1item.cpp

     文件        413  2018-04-18 13:11  基于WinPcap的抓包软件设计Design_1item.h

     文件       6396  2018-04-18 13:12  基于WinPcap的抓包软件设计Design_1item.ui

     文件        183  2018-04-03 08:52  基于WinPcap的抓包软件设计Design_1main.cpp

     文件      30789  2018-05-30 11:51  基于WinPcap的抓包软件设计Design_1mainwindow.cpp

     文件       2924  2018-05-30 11:48  基于WinPcap的抓包软件设计Design_1mainwindow.h

     文件      25363  2018-05-30 10:28  基于WinPcap的抓包软件设计Design_1mainwindow.ui

     文件       1594  2018-05-07 10:06  基于WinPcap的抓包软件设计Design_1packet.cpp

     文件       1148  2018-05-07 10:06  基于WinPcap的抓包软件设计Design_1packet.h

     文件       2656  2018-05-11 22:35  基于WinPcap的抓包软件设计Design_1protocol_header.h

     文件       4416  2018-05-11 23:23  基于WinPcap的抓包软件设计Design_1saved_packet.cpp

     文件       1002  2018-05-11 14:03  基于WinPcap的抓包软件设计Design_1saved_packet.h

     文件       3108  2018-05-11 08:30  基于WinPcap的抓包软件设计Design_1saved_packet.ui

     文件        250  2018-05-11 09:59  基于WinPcap的抓包软件设计Design_1saving_packet.cpp

     文件        329  2018-05-11 10:00  基于WinPcap的抓包软件设计Design_1saving_packet.h

............此处省略70个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)