资源简介
包含程序源码 应用程序 语言: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\li
文件 6532 2017-12-10 10:15 ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\li
文件 1730 2017-12-10 10:15 ConsoleApplication2\ConsoleApplication2\Debug\ConsoleA.918E02F4.tlog\li
文件 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个文件信息
- 上一篇:MFC超市管理系统
- 下一篇:C++打造流星雨特效源代码
相关资源
- C++打造流星雨特效源代码
- Programming Abstractions in C++
- C++课后小练习(类、继承、多态等有
- VC++面向对象与可视化程序设计第三版
- C++程序设计教程_钱能主编_清华大学出
- 语音识别的算法实现C++
- 员工工资管理系统C++与SQL课程设计
- 基于MFC的流程图绘制工具
- 进销存管理系统 VC6.0 C++
- Effective C++ Third Edition 英文 第3版 PDF
- C++ Socket 多线程多机聊天
- DevC++ 4.9
- opengl c++读取obj文件
- 学生管理系统 sql数据库 VisualC++ 软件
- C++语言程序设计(郑莉) 源码
- 进程同步与互斥C++
- 手写数字识别_附带VC++源程序和训练素
- vc++ 数字图像处理典型算法及实现 源
- ATM源代码用c++文件读写.zip
- C++聊天程序源程序有服务器和客户端
- vc++使用大漠使用和dll头文件等.rar
- 画图软件(直线、矩形、椭圆、三角
- 扫雷源代码C++
- 学生成绩管理系统C++附报告
- C++ MFC 简单计算器完善+注释
- 在vs中仿真uc/gui的例程,摆脱vc++
- 单向链表类模板全C++
- 机载激光雷达 Las格式读写及显示
- C/C++文件系统树状结构
- C++ 图像压缩算法
评论
共有 条评论