资源简介
这是一份完整的监控IP包流量的计算机网络课程设计,包含VC工程文件和课程设计报告,里面还有关于cmd最常用的命令简介和一个winpacp安装文件。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include“pcap.h“
#include“IPNodeList.h“
#pragma comment(lib“Wpcap.lib“)
#pragma comment(lib“Ws2_32.lib“)
struct ip_header
{
unsigned char ver_ihl;//版本号(4)+头部长度(4)
unsigned char tos;
unsigned short tlen; //总长度
unsigned short identification;//标识
unsigned short flags_fo;
unsigned char ttl;
unsigned char proto; //协议
unsigned short crc;
DWORD saddr; //源地址
DWORD daddr; //目的地址
unsigned int op_pad; //选项+填充
};
void main(int argcchar* argv[])
{
if(argc!=3)
{
cout<<“usage:IP Statistic time logfile“< cout<<“press any key to continue...“< _getch();
return;
}
double min=atof(argv[1]);//argv:时间,字符串转换另:atof()函数将字符串转换成浮点型数;
pcap_if_t *alldevs; //pcap_if_t是pcap_if的宏定义,是网络设备结构的列表,列表的每一项包含关于适配器的复杂的信息
pcap_if_t *d*head=NULL;
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE];
unsigned int netmask;
char packet_filter[]=“ip“;//过滤规则
struct bpf_program fcode;
struct pcap_pkthdr *header;
const unsigned char *pkt_data;
//获取网路设备列表
if(pcap_findalldevs(&alldevserrbuf)==-1)
{
cout<<“Error in pcap_findalldevs:“< return;
}
int i;
int j=0;
for(d=alldevs;d;d=d->next)//列出网卡列表
{
cout<<++j<<“: “<name;
if(d->description)
cout<<“ “<description< }
cout<<“\nEnter the interface number (1-“< int k;
cin>>k;
if(k<1||k>j)
{
cout<<“out of range“< return;
}
for(d=alldevsi=1;inexti++);
head=d;
//以混杂模式打开网卡
if((fp=pcap_open_live(head->name100011000errbuf))==NULL)//监听的设备接口名,最大数目的网络数据包,是否混杂,超时时间,存储出错信息
{
cout<<“\nUnable to open the adapter.“< pcap_freealldevs(alldevs);
return;
}
//获得子网掩码
if(head->addresses !=NULL)
netmask=((struct sockaddr_in*)(head->addresses->netmask))->sin_addr.S_un.S_addr;//将二进制IP转化为点进十进制
else
netmask=0xffffff;
//编译过滤器
if(pcap_compile(fp&fcodepacket_filter1netmask)<0)//packet_filter:规则表达式格式的过滤规则,netmask:监听接口的网络掩码
{
cout<<“\nUnable to compile the packet filter. Check the syntax. \n “;
pcap_freealldevs(alldevs);
return;
}
//设置过滤器
if(pcap_setfilter(fp&fcode)<0)//pcap的会话句柄;经过编译后的过滤规则,返回-1表示操作失败,其他值表成功
{
cout<<“\nError setting the filter.\n“;
pcap_freealldevs(alldevs);
return;
}
//显示提示信息及每项含义
cout<<“\nlistening on“<description<<“...“< ofstream fout(argv[2]ios::app); //
fout<<“\tIP Statistic:(“< time_t tmp=time(NULL); //
fout< cout<<“IP Statistic:(“< fout<<“ Sour IP “<<“\tpacket numbers“<
//释放设备列表
pcap_freealldevs(alldevs);
NodeList link;//定义结点链表link
int res;
time_t beg; //time_t是long型的变量,当前时间
time_t end; //结束时间
time(&beg); //
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2010-06-25 10:58 IPMONITOR\Debug\a.txt
文件 3886 2010-06-24 19:13 IPMONITOR\Debug\BuildLog.htm
文件 2032640 2010-06-23 18:06 IPMONITOR\Debug\IPMONITOR.bsc
文件 254011 2010-06-26 20:50 IPMONITOR\Debug\IPMONITOR.exe
文件 327256 2010-06-26 20:50 IPMONITOR\Debug\IPMONITOR.ilk
文件 30682 2010-06-26 20:50 IPMONITOR\Debug\ipmonitor.obj
文件 4867136 2010-06-26 20:37 IPMONITOR\Debug\IPMONITOR.pch
文件 648192 2010-06-26 20:50 IPMONITOR\Debug\IPMONITOR.pdb
文件 1003136 2010-06-26 20:50 IPMONITOR\Debug\ipmonitor.sbr
文件 3584 2010-06-24 19:22 IPMONITOR\Debug\IPMONITOR.suo
文件 279552 2010-06-26 20:50 IPMONITOR\Debug\vc60.idb
文件 102400 2010-06-26 20:50 IPMONITOR\Debug\vc60.pdb
文件 76800 2010-06-24 19:13 IPMONITOR\Debug\vc90.idb
文件 135168 2010-06-24 19:13 IPMONITOR\Debug\vc90.pdb
文件 1555 2010-06-13 19:58 IPMONITOR\Debug\命令提示符.lnk
文件 4049 2010-06-26 20:50 IPMONITOR\ipmonitor.cpp
文件 4462 2010-06-24 16:44 IPMONITOR\IPMONITOR.dsp
文件 541 2010-06-22 21:11 IPMONITOR\IPMONITOR.dsw
文件 74752 2010-06-26 20:50 IPMONITOR\IPMONITOR.ncb
文件 70656 2010-06-26 20:50 IPMONITOR\IPMONITOR.opt
文件 1299 2010-06-26 20:50 IPMONITOR\IPMONITOR.plg
文件 883 2010-06-24 19:08 IPMONITOR\IPMONITOR.sln
..A..H. 10752 2010-06-24 19:14 IPMONITOR\IPMONITOR.suo
文件 5368 2010-06-24 19:08 IPMONITOR\IPMONITOR.vcproj
文件 1427 2010-06-24 19:14 IPMONITOR\IPMONITOR.vcproj.PC2010060420VAO.Administrator.user
文件 2011 2010-06-26 20:37 IPMONITOR\IPNodeList.h
文件 15467 2010-06-24 16:25 IPMONITOR\PCAP.H
文件 84480 2010-06-26 20:46 课程设计报告:监控IP包流量.doc
文件 221 2010-06-26 20:49 CMD命令最常用命令简介.txt
文件 550560 2008-07-08 11:02 WinPcap_4_0_2.exe
............此处省略6个文件信息
相关资源
- 04741计算机网络原理知识点整理.docx(
- FTP课程设计(服务端+客户端)
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- c 课程设计 职工信息管理系统
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 课程设计蔬菜大棚自动控制系统,包
- 密码学课程设计:DES加密解密算法的
- SOCKET 网络编程 计算机网络 作业 客户
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- PL/0功能扩充break功能
- 数据库课程设计以及指导思想
- ATM自动取款机系统的分析与设计
评论
共有 条评论