资源简介

这是我本学期的网络编程课程设计,是基于winpcap的抓包程序,用MFC实现。 本程序基于winpcap,可以实现抓包类型的选择,如ARP,IP,TCP,UDP,ICMP。一般网上的抓包程序都是利用原始套接字,而基于原始套接字的抓包程序是无法抓到网络层一下的包的,如ARP包。本程序实现的任意类型的抓包。 资源中含有1.程序源码 2.winpcap安装程序3.课程设计文档4.VC++设置说明。内容非常丰富。 本程序界面清晰实用,一目了然,容易上手。把抓包函数放到线程中,避免的主线程无响应。

资源截图

代码片段和文件信息

// ChoseNICDlg.cpp : implementation file
//

#include “stdafx.h“
#include “抓包分析.h“
#include “ChoseNICDlg.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#pragma comment(lib“wpcap.lib“) 
#pragma comment(lib“WS2_32.lib“) 

/////////////////////////////////////////////////////////////////////////////
// CChoseNICDlg dialog


CChoseNICDlg::CChoseNICDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChoseNICDlg::IDD pParent)
{
//{{AFX_DATA_INIT(CChoseNICDlg)
m_NICinfo = _T(““);
m_DeviceIndex = 1;
flag=0;  //初始化为0
//}}AFX_DATA_INIT

}


void CChoseNICDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChoseNICDlg)
DDX_Text(pDX IDC_EDIT_NIC_INFO m_NICinfo);
DDX_Text(pDX IDC_EDIT_DEVICE_INDEX m_DeviceIndex);
DDV_MinMaxInt(pDX m_DeviceIndex 0 10);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CChoseNICDlg CDialog)
//{{AFX_MSG_MAP(CChoseNICDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChoseNICDlg message handlers

void CChoseNICDlg::OnOK() 
{

int i;
UpdateData(TRUE);
if (m_DeviceIndex > DeviceNumberSum - 1 || m_DeviceIndex < 0)
    {
MessageBox(“没有该设备序号!请重新选择““20072212466麻思“MB_OKCANCEL+MB_ICONEXCLAMATION);
}
else
{
for (Device = NetwokDevice i = 0; i < m_DeviceIndex; Device = Device->next i++);  //使device指向当前选择的设备后面要用

//使用无线局域网802.11时pcap_open_live()的第三个参数(是否混杂模式)要设为0否则抓不到包
WinpcapHandle = pcap_open_live(LPCTSTR(DeviceName[m_DeviceIndex]) 65535 0 1000 WinpcapError);//打开一个设备
if (WinpcapHandle == NULL)
{
    MessageBox(“打开网卡失败!“);
    pcap_freealldevs(NetwokDevice);
}
flag=1;  //选择网卡成功设标志位为1
MessageBox(“网卡选择成功““20072212466麻思“MB_OKCANCEL+MB_ICONINFORMATION);
CDialog::OnOK();
}
}

pcap_if_t * CChoseNICDlg::GetCurrentDevice()  //返回当前设备指针
{
return Device;
}
pcap_t * CChoseNICDlg::GetPcapHandle()  //返回pcap文件指针
{
return WinpcapHandle;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      36352  2010-07-04 22:22  课程设计\20072212466麻思.doc

     文件        525  2010-05-22 09:36  课程设计\pcap VC设置.txt

     文件     533872  2010-06-04 08:02  课程设计\WinPcap_4_0_2.zip

     文件       2165  2010-06-22 23:41  课程设计\抓包分析\ChoseNICDlg.cpp

     文件       1747  2010-06-22 23:40  课程设计\抓包分析\ChoseNICDlg.h

     文件       3636  2010-06-24 23:10  课程设计\抓包分析\protoinfo.h

     文件       3597  2010-06-20 21:07  课程设计\抓包分析\ReadMe.txt

     文件       1078  2010-06-20 21:07  课程设计\抓包分析\res\抓包分析.ico

     文件        400  2010-06-20 21:07  课程设计\抓包分析\res\抓包分析.rc2

     文件       1467  2010-06-30 02:39  课程设计\抓包分析\resource.h

     文件        210  2010-06-20 21:07  课程设计\抓包分析\StdAfx.cpp

     文件       1054  2010-06-20 21:07  课程设计\抓包分析\StdAfx.h

     文件      37876  2010-06-30 12:57  课程设计\抓包分析\抓包分析.aps

     文件       2298  2010-07-14 21:36  课程设计\抓包分析\抓包分析.clw

     文件       2025  2010-06-20 21:07  课程设计\抓包分析\抓包分析.cpp

     文件       4479  2010-06-21 19:43  课程设计\抓包分析\抓包分析.dsp

     文件        524  2010-06-20 21:07  课程设计\抓包分析\抓包分析.dsw

     文件       1292  2010-06-20 21:07  课程设计\抓包分析\抓包分析.h

     文件      91136  2010-07-14 21:37  课程设计\抓包分析\抓包分析.ncb

     文件      55808  2010-07-14 21:37  课程设计\抓包分析\抓包分析.opt

     文件        250  2010-07-14 21:35  课程设计\抓包分析\抓包分析.plg

     文件       8626  2010-06-30 12:57  课程设计\抓包分析\抓包分析.rc

     文件      19612  2010-06-30 23:41  课程设计\抓包分析\抓包分析Dlg.cpp

     文件       2085  2010-06-30 22:57  课程设计\抓包分析\抓包分析Dlg.h

     目录          0  2010-07-14 16:55  课程设计\抓包分析\res

     目录          0  2010-07-15 23:03  课程设计\抓包分析

     目录          0  2010-07-15 23:03  课程设计

----------- ---------  ---------- -----  ----

               812114                    27



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

评论

共有 条评论