資源簡介
使用Winpcap捕獲網絡數據包,能自定義抓包規則,并且實現了對數據包的分析
系統在設計過程中按照MVC的設計模式,整體分為三層。第一層為Control層即控制層,這里為簡化設計,將Control層分為兩個部分,一部分為網絡報文輸入,另一部分為用戶輸入;第二層是Model層即模型層;第三層為View層即顯示層。
系統的整體運行過程為:從Control層得到數據,交到Model層進行處理,將處理完的結果交View層進行顯示。Control層主要用于網絡數據包的捕獲以及獲得用戶的輸入;
Model層主要用于分析數據包,處理用戶的輸入;View層主要用于對處理后的結果進行顯示。

代碼片段和文件信息
//?AdapaterSelection.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“CapturePacket.h“
#include?“AdapaterSelection.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CAdapaterSelection?dialog
CAdapaterSelection::CAdapaterSelection(CWnd*?pParent?/*=NULL*/)
:?CDialog(CAdapaterSelection::IDD?pParent)
{
//{{AFX_DATA_INIT(CAdapaterSelection)
//?NOTE:?the?ClassWizard?will?add?member?initialization?here
//}}AFX_DATA_INIT
}
void?CAdapaterSelection::DoDataExchange(CDataExchange*?pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdapaterSelection)
DDX_Control(pDX?IDC_TREE_NETWORKADAPTERS?m_treeAdapater);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAdapaterSelection?CDialog)
//{{AFX_MSG_MAP(CAdapaterSelection)
ON_NOTIFY(NM_DBLCLK?IDC_TREE_NETWORKADAPTERS?OnDblclkTreeNetworkadapters)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CAdapaterSelection?message?handlers
BOOL?CAdapaterSelection::OnInitDialog()?
{
CDialog::OnInitDialog();
//?TODO:?Add?extra?initialization?here
????
//初始化樹形選擇
????HTREEITEM?root?=?m_treeAdapater.InsertItem(_T(“網絡適配器“));
if(pcap_findalldevs(&m_pAllDevs?m_strErrorBuf)?==?-1)
return?FALSE;
for(m_pDev?=?m_pAllDevs;m_pDev?!=?NULL;m_pDev?=?m_pDev->next)
{
char?temp[400];
CString?strText;
HTREEITEM?hSubItem?=?m_treeAdapater.InsertItem(m_pDev->nameroot);
if(m_pDev->description?!=?NULL)
{
????strText.Format(“網卡描述信息?:?%s“m_pDev->description);
m_treeAdapater.InsertItem(strTexthSubItem);
}
else
{
m_treeAdapater.InsertItem(“網卡描述信息?:?空“hSubItem);
}
if(m_pDev->addresses?!=?NULL?&&?m_pDev->addresses->addr?!=?NULL)
{
iptos(((struct?sockaddr_in?*)m_pDev->addresses->addr)->sin_addr.s_addrtemp);
strText.Format(“IP地址?:?%s“temp);
m_treeAdapater.InsertItem(strTexthSubItem);
}
else
{
m_treeAdapater.InsertItem(“IP地址?:??空“hSubItem);
}
if(m_pDev->addresses?!=?NULL?&&?m_pDev->addresses->broadaddr?!=?NULL)
{
iptos(((struct?sockaddr_in?*)m_pDev->addresses->broadaddr)->sin_addr.s_addrtemp);
strText.Format(“廣播地址?:?%s“temp);
m_treeAdapater.InsertItem(strTexthSubItem);
}
else
{
m_treeAdapater.InsertItem(“廣播地址?:?無“hSubItem);
}
if(m_pDev->addresses!=NULL?&&?m_pDev->addresses->netmask!=NULL)
{
iptos(((struct?sockaddr_in?*)m_pDev->addresses->netmask)->sin_addr.s_addrtemp);
strText.Format(“子網掩碼?:?%s“temp);
m_treeAdapater.InsertItem(strTexthSubItem);
}
else
{
m_treeAdapater.InsertItem(“子網掩碼?:?空“hSubItem);
}
if(m_pDev->addresses!=NULL?&&?m_pDev->addresses->dstaddr!=NULL)
{
iptos(((struct?sockaddr_in?*)m_pDev->addresses->dstaddr)->sin_addr.s_addrtemp);
strText.Format(“目地地址?:?%s“tem
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????102400??2008-01-06?02:45??網絡嗅探器\可執行文件\CapturePacket.exe
?????文件?????????10??2008-01-24?15:38??網絡嗅探器\可執行文件\configuration\filter.cp
?????文件?????620659??2007-10-16?13:48??網絡嗅探器\可執行文件\help.CHM
?????文件?????561648??2007-09-28?16:59??網絡嗅探器\可執行文件\WinPcap_4_0_1.exe
?????文件????????515??2007-10-16?14:18??網絡嗅探器\可執行文件\首次使用必讀.txt
?????文件???????4552??2007-10-04?17:34??網絡嗅探器\源代碼文件\AdapaterSelection.cpp
?????文件???????1553??2007-10-04?17:34??網絡嗅探器\源代碼文件\AdapaterSelection.h
?????文件????????860??2007-10-23?00:36??網絡嗅探器\源代碼文件\app.manifest
?????文件??????13541??2004-12-21?23:03??網絡嗅探器\源代碼文件\appface.h
?????文件???????2532??2004-12-20?14:16??網絡嗅探器\源代碼文件\appface.lib
?????文件???????2507??2007-10-09?01:46??網絡嗅探器\源代碼文件\ARPPacket.cpp
?????文件???????1336??2007-10-09?01:02??網絡嗅探器\源代碼文件\ARPPacket.h
?????文件??????86140??2007-10-23?01:06??網絡嗅探器\源代碼文件\CapturePacket.aps
?????文件???????4031??2007-11-16?16:27??網絡嗅探器\源代碼文件\CapturePacket.clw
?????文件???????2288??2007-10-11?01:06??網絡嗅探器\源代碼文件\CapturePacket.cpp
?????文件???????4947??2007-10-23?01:06??網絡嗅探器\源代碼文件\CapturePacket.dsp
?????文件????????551??2007-10-04?10:56??網絡嗅探器\源代碼文件\CapturePacket.dsw
?????文件?????106496??2008-01-06?02:45??網絡嗅探器\源代碼文件\CapturePacket.exe
?????文件???????1403??2007-10-11?01:06??網絡嗅探器\源代碼文件\CapturePacket.h
?????文件?????181248??2007-11-16?16:27??網絡嗅探器\源代碼文件\CapturePacket.ncb
?????文件??????61952??2007-11-16?16:27??網絡嗅探器\源代碼文件\CapturePacket.opt
?????文件???????1284??2007-10-23?01:05??網絡嗅探器\源代碼文件\CapturePacket.plg
?????文件??????10653??2007-10-23?01:06??網絡嗅探器\源代碼文件\CapturePacket.rc
?????文件??????28817??2007-10-23?01:01??網絡嗅探器\源代碼文件\CapturePacketDlg.cpp
?????文件???????3274??2007-10-16?00:58??網絡嗅探器\源代碼文件\CapturePacketDlg.h
?????文件?????????10??2007-10-16?13:28??網絡嗅探器\源代碼文件\configuration\filter.cp
?????文件???????3707??2007-10-09?11:44??網絡嗅探器\源代碼文件\DirDialog.cpp
?????文件????????669??2007-10-09?11:41??網絡嗅探器\源代碼文件\DirDialog.h
?????文件???????1773??2007-10-23?01:00??網絡嗅探器\源代碼文件\FilterDl.cpp
?????文件???????1284??2007-10-23?00:56??網絡嗅探器\源代碼文件\FilterDl.h
............此處省略39個文件信息
- 上一篇:C++程序設計課后答案機械工業出版社
- 下一篇:VC++坦克大戰多人在線大型網絡游戲
評論
共有 條評論