资源简介
VS2008CWinpcap网络嗅探器(中科院课设).rar

代码片段和文件信息
#include “StdAfx.h“
#include “MyWinPcap.h“
// file process
MyWinPcap::MyWinPcap(void):m_iCurNo(0)
{
//使用GetModuleFileName获取应用程序路径
TCHAR szModuleName[MAX_PATH];
::GetModuleFileName(NULLszModuleNameMAX_PATH);
CString strDir = szModuleName;
strDir = strDir.Left(strDir.ReverseFind(TEXT(‘\\‘))); // Left() -> Extracts the leftmost nCount characters from this CStringT object and returns a copy of the extracted substring
CString fileData;
fileData.Format(TEXT(“%s\\packet.dmp“)strDir);
m_pfileData = new CFile(fileDataCFile::modeCreate|CFile::modeReadWrite); //create or write data(packet) file
CString fileIndex;
fileIndex.Format(TEXT(“%s\\packet.idx“)strDir);
m_pfileIndex = new CFile(fileIndexCFile::modeCreate|CFile::modeReadWrite); //create or write index(packet) file
}
MyWinPcap::~MyWinPcap(void)
{
if(m_pfileData)
{
m_pfileData->Close();
delete m_pfileData;
m_pfileData = NULL; // safer
}
if(m_pfileIndex)
{
m_pfileIndex->Close();
delete m_pfileIndex;
m_pfileIndex = NULL;
}
}
// Append packet
void MyWinPcap::AppendPacket(packet *pkt)
{
const pcap_pkthdr *header = pkt->header;
const u_char *data = pkt->pkt_data;
++m_iCurNo;
packet_index index;
index.no = m_iCurNo;
index.pos = m_pfileData->GetPosition();
index.len = sizeof(pcap_pkthdr) + header->len;
m_pfileIndex->SeekToEnd();
m_pfileIndex->Write(&indexsizeof(packet_index));
m_pfileData->SeekToEnd();
m_pfileData->Write(headersizeof(pcap_pkthdr));
m_pfileData->Write(dataheader->len);
m_pfileIndex->Flush(); // write from memory to disk immediatly
m_pfileData->Flush();
}
// Get packet
packet * MyWinPcap::GetPacket(int m_iNo)
{
int iPos = (m_iNo-1)*sizeof(packet_index);
packet_index pIndex;
m_pfileIndex->Seek(iPosCFile::begin);
m_pfileIndex->Read(&pIndexsizeof(packet_index));
m_pfileData->Seek(pIndex.posCFile::begin);
byte *buffer = new byte[pIndex.len];
m_pfileData->Read(bufferpIndex.len);
packet *pkt = new packet();
pkt->header = (pcap_pkthdr *)buffer;
pkt->pkt_data = (u_char *)(buffer+sizeof(pcap_pkthdr));
return pkt;
}
// ============= self function =============
// 返回本机所有的网卡
pcap_if_t * MyWinPcap::GetAdapterList(void )
{
/* Retrieve the device list from the local machine */
char errbuf[PCAP_ERRBUF_SIZE];
pcap_if_t * m_alldevs = new pcap_if_t(); // ?????? allocate memory to sava temp all-devs ?????
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING NULL /* auth is not needed */ &m_alldevs errbuf) == -1) // if error
{
CString errmsg;
USES_CONVERSION;
errmsg.Format(TEXT(“Error in cap_finalldevs_ex(): %s\n“)A2W(errbuf));
AfxMessageBox(errmsg);
return NULL;
}
else if(NULL == m_alldevs)
{
AfxMessageBox(TEXT(“No interfaces found! Make sure WinPcap is installed...“));
return NULL;
}
else
return m_alldevs;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 238080 2009-10-25 23:41 网络攻击与防范实验报告.doc
文件 223232 2009-10-25 23:43 YGSniffer.exe
文件 2939 2009-10-16 02:00 YGSniffer\YGSniffer\MyWinPcap.cpp
文件 629 2009-10-15 17:35 YGSniffer\YGSniffer\MyWinPcap.h
文件 4058 2009-10-14 13:32 YGSniffer\YGSniffer\ReadMe.txt
文件 67777 2007-11-28 16:21 YGSniffer\YGSniffer\res\YGSniffer.ico
文件 400 2009-10-14 13:32 YGSniffer\YGSniffer\res\YGSniffer.rc2
文件 2881 2009-10-25 21:46 YGSniffer\YGSniffer\resource.h
文件 211 2009-10-14 13:32 YGSniffer\YGSniffer\stdafx.cpp
文件 2175 2009-10-17 12:10 YGSniffer\YGSniffer\stdafx.h
文件 5143 2009-10-24 09:59 YGSniffer\YGSniffer\StructFile.h
文件 1469 2009-10-14 17:22 YGSniffer\YGSniffer\targetver.h
文件 110440 2009-10-25 21:47 YGSniffer\YGSniffer\YGSniffer.aps
文件 2129 2009-10-25 21:44 YGSniffer\YGSniffer\YGSniffer.cpp
文件 526 2009-10-14 13:32 YGSniffer\YGSniffer\YGSniffer.h
文件 9465 2009-10-25 21:47 YGSniffer\YGSniffer\YGSniffer.rc
文件 6031 2009-10-24 16:12 YGSniffer\YGSniffer\YGSniffer.vcproj
文件 1421 2009-10-24 20:24 YGSniffer\YGSniffer\YGSniffer.vcproj.INTERNAL.yangliang.user
文件 1407 2009-10-25 23:43 YGSniffer\YGSniffer\YGSniffer.vcproj.YOUNG.yanggang.user
文件 34882 2009-10-25 21:46 YGSniffer\YGSniffer\YGSnifferDlg.cpp
文件 4502 2009-10-25 21:46 YGSniffer\YGSniffer\YGSnifferDlg.h
文件 893 2009-10-14 13:32 YGSniffer\YGSniffer.sln
..A..H. 173056 2009-10-25 23:43 YGSniffer\YGSniffer.suo
目录 0 2009-10-24 20:44 YGSniffer\YGSniffer\res
目录 0 2009-10-25 23:43 YGSniffer\YGSniffer
目录 0 2009-10-25 23:45 YGSniffer
----------- --------- ---------- ----- ----
893746 26
- 上一篇:铣床夹具 装配图
- 下一篇:《AutoCAD .NET开发指南2012版》
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论