资源简介

包含程序源码 应用程序 语言:C++ 编程软件:Microsoft Visual Studio 2015

资源截图

代码片段和文件信息

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include 
#include “stdlib.h“
#include 
#define _WINSOCK_DEPRECATED_NO_WARNINGS 
#define _CRT_SECURE_NO_WARNINGS  
#include   
#include   
#include   
#include   
#include   
#pragma comment(lib“Ws2_32.lib“)  

using namespace std;
//IP首部  
typedef struct tIPPackHead
{

BYTE ver_hlen;      //IP协议版本和IP首部长度。高4位为版本,低4位为首部的长度(单位为4bytes)  
BYTE byTOS;       //服务类型  
WORD wPacketLen; //IP包总长度。包括首部,单位为byte。[Big endian]  
WORD wSequence;    //标识,一般每个IP包的序号递增。[Big endian]  

union
{
WORD Flags; //标志  
WORD FragOf;//分段偏移  
};
BYTE byTTL;         //生存时间   
BYTE byProtocolType; //协议类型,见PROTOCOL_TYPE定义  
WORD wHeadCheckSum;    //IP首部校验和[Big endian]  
DWORD dwIPSrc;         //源地址  
DWORD dwIPDes;         //目的地址  
BYTE Options;          //选项  
} IP_HEAD;

int cnt;

int DecodeIP(char *buf int len)
{
int n = len;
if (n >= sizeof(IP_HEAD))
{
IP_HEAD iphead;
iphead = *(IP_HEAD*)buf;

cout << “第 “ << cnt++ << “ 个IP数据包信息:“ << endl;
cout << “协议版本:“ << (iphead.ver_hlen >> 4) << endl;
cout << “服务类型:Priority: “ << (iphead.byTOS >> 5) << “Service: “ << ((iphead.byTOS >> 1) & 0x0f) << endl;
cout << “IP包总长度:“ << ntohs(iphead.wPacketLen) << endl; //网络字节序转为主机字节序  
switch (int(iphead.byProtocolType)) {
case 1:cout << “协议类型:ICMP“ << endl;
break;
case 2:cout << “协议类型:IGMP“ << endl;
break;
case 6:cout << “协议类型:TCP“ << endl;
break;
case 17:cout << “协议类型:UDP“ << endl;
break;
}
cout << “源地址:“ << inet_ntoa(*(in_addr*)&iphead.dwIPSrc) << endl;
cout << “目的地址:“ << inet_ntoa(*(in_addr*)&iphead.dwIPDes) << endl;

cout << “==============================================================“ << endl << endl;
}
return 0;
}
void AutoWSACleanup()
{
::WSACleanup();
}
int main()
{
int n;
WSADATA wd;
n = WSAStartup(MAKEWORD(2 2) &wd);
if (n)
{
cout << “WSAStartup函数错误!“ << endl;
return -1;
}
atexit(AutoWSACleanup);
//创建SOCKET  
SOCKET sock = socket(AF_INET SOCK_RAW IPPROTO_IP);
if (sock == INVALID_SOCKET)
{
cout << WSAGetLastError();
return 0;
}
//获取本机地址  
char  name[128];
if (-1 == gethostname(name sizeof(name)))
{
closesocket(sock);
cout << WSAGetLastError();
return 0;
}
struct hostent * pHostent;
pHostent = gethostbyname(name);
//绑定本地地址到SOCKET句柄  
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr = *(in_addr*)pHostent->h_addr_list[0]; //IP  
addr.sin_port = 8888; //端口,IP层端口可随意填  
if (SOCKET_ERROR == bind(sock (sockaddr *)&addr sizeof(addr)))
{
closesocket(sock);
cout << WSAGetLastError();
return 0;
}

//设置该SOCKET为接收所有流经绑定的IP的网卡的所有数据,包括接收和发送的数据包  
u_long sioarg = 1;
DWORD wt = 0;
if (SOCKET_ERROR == WSAIoctl(sock SIO_RCVALL &sioarg sizeof(sioarg) NULL 0 &wt NULL NULL))
{
closesocket(sock);
cout << WSA

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

     文件      51200  2017-12-02 13:03  ConsoleApplication2.exe

    ..A..H.     36352  2017-12-10 16:37  ConsoleApplication2\.vs\ConsoleApplication2\v14\.suo

     文件       4031  2017-12-02 13:02  ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.cpp

     文件       8085  2017-12-02 10:26  ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj

     文件       1326  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2\ConsoleApplication2.vcxproj.filters

     文件       3770  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\CL.command.1.tlog

     文件      56704  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\CL.read.1.tlog

     文件       3270  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\CL.write.1.tlog

     文件        253  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\ConsoleApplication2.lastbuildstate

     文件       3238  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\link.command.1.tlog

     文件       6532  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\link.read.1.tlog

     文件       1730  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\link.write.1.tlog

     文件        818  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleApplication2.log

     文件      81187  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleApplication2.obj

     文件    4063232  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\ConsoleApplication2.pch

     文件      12530  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\stdafx.obj

     文件    1076224  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\vc140.idb

     文件     512000  2017-12-10 10:15  ConsoleApplication2\ConsoleApplication2\Debug\vc140.pdb

     文件       1594  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2\ReadMe.txt

     文件        223  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2\stdafx.cpp

     文件        234  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2\stdafx.h

     文件        240  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2\targetver.h

     文件   38666240  2017-12-10 16:37  ConsoleApplication2\ConsoleApplication2.sdf

     文件       1339  2017-12-02 10:20  ConsoleApplication2\ConsoleApplication2.sln

     文件      51200  2017-12-10 10:15  ConsoleApplication2\Debug\ConsoleApplication2.exe

     文件     388928  2017-12-10 10:15  ConsoleApplication2\Debug\ConsoleApplication2.ilk

     文件    1077248  2017-12-10 10:15  ConsoleApplication2\Debug\ConsoleApplication2.pdb

     文件    3538944  2017-12-10 16:11  ConsoleApplication2\ipch\CONSOLEAPPLICATION2-73d07cbb\CONSOLEAPPLICATION2-82421765.ipch

     文件    3538944  2017-12-02 10:26  ConsoleApplication2\ipch\CONSOLEAPPLICATION2-c0a496a8\CONSOLEAPPLICATION2-82421765.ipch

     目录          0  2017-12-02 13:10  ConsoleApplication2\.vs\ConsoleApplication2\v14

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

评论

共有 条评论