资源简介
编写程序,监控本地网络,捕获一段时间内以本机为源地址或目的地址的IP数据包(不包括以广播形式发出的数据包),统计IP数据包的信息,列出本机与其他主机之间不同协议类型IP数据包的流量。
代码片段和文件信息
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32“) //指定连接到网络应用和internet
#define IO_RCVALL _WSAIOW(IOC_VENDOR1)
typedef struct IP_HEAD
{
union //定义联合
{
unsigned char Version;
unsigned char HeadLen;
};
unsigned char ServiceType;
unsigned short TotalLen;
unsigned short Identifier;
union
{
unsigned short Flags;
unsigned short FragOffset;
};
unsigned char TimeToLive;
unsigned char Protocol;
unsigned short HeadChecksum;
unsigned int SourceAddr;
unsigned int DestinAddr;
unsigned char Options;
}ip_head; //定义IP头部的数据结构
void main(int argcchar *argv[])
{
using namespace std;
ofstream outfile(“C:\\logfile.txt“ios::out);
/*if(argc!=2)
{
cout< return;
} */
WSADATA WSAData;
if(WSAStartup(MAKEWORD(22) &WSAData)!=0)
{
cout< return;
}
SOCKET sock=socket(AF_INETSOCK_RAWIPPROTO_IP); //三个参分别为通信发生的区字段,套接字的类型,与IP协议
if(sock==INVALID_SOCKET)
{
cout< closesocket(sock);
WSACleanup();
}
BOOL flag=TRUE;
if(setsockopt(sockIPPROTO_IPIP_HDRINCL(char *) &flagsizeof(flag))==SOCKET_ERROR)
{
cout< closesocket(sock);
WSACleanup();
}
char hostName[128];//获取主机名
if(gethostname(hostName100)==SOCKET_ERROR)
{
cout< closesocket(sock);
WSACleanup();
}
hostent *pHostIP; //获取本地IP
if((pHostIP=gethostbyname(hostName))==NULL)
{
cout< closesocket(sock);
WSACleanup();
}
sockaddr_in host_addr;//
host_addr.sin_family=AF_INET;
host_addr.sin_port=htons(6000);
host_addr.sin_addr=*(in_addr *)pHostIP->h_addr_list[0];
if(bind(sock(PSOCKADDR)&host_addrsizeof(host_addr))==SOCKET_ERROR)
{
cout< closesocket(sock); //绑定网卡
WSACleanup();
}
DWORD dwBufferLen[10];
DWORD dwBufferInLen=1;
DWORD dwBytesReturned=0;
if(WSAIoctl(sock IO_R
- 上一篇:图像处理连通域算法 c++ vc 6.0
- 下一篇:MFC图像处理荧光检测算法代码
相关资源
- 64位的GDIPLUS库
- 用Socket 实现http协议
- VC++ MFC 如何用 CZip CUnzip类压缩解压缩
- 六个8X8点阵.zip
- C++primer 第五版最新版 源代码 程序.
- 数据链路层各协议的实现算法
- C语言模拟滑动窗口协议
- Q1077615.zip C++读文件创建链表问题
- c++实现的mips汇编器
- 语音信号处理与提取.zip
- 空间离散点椭球拟合源代码EllipsoidF
- C++Primer第五版---高清版.zip
- 基于C语言的 跨平台 zip unzip
- 利用TCP协议实现文件传输C语言
- 用MFC编写的数据包校验与常用校验算
- GoBackN协议的C语言实现
- 基于遗传神经网络的图像分割.zip
- C++实现mqtt协议
- FTP客户端程序,c语言编写
- C++ QT中 通过UDP广播获取网络中所有设
- UDP协议客户端服务器间视频传输c源码
- MAC子层层协议仿真包括ALOHA CSMA
- 解析ip数据包源程序
- c++代码解析IP数据包
- Q756748.zip 用VS2010MFC做一道可视化题目
- 激光扫描振镜接口协议和C程序与硬件
- C语言解析IP数据包程序
- C++ 多线程TELNET服务程序
- C++获取所有局域网可用IPping
- php_memcache-5.3-VC6-x86.zip
评论
共有 条评论