資源簡介
包含程序源碼 應用程序 語言: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?<“第?“?< cout?<“協議版本:“?<(iphead.ver_hlen?>>?4)?< cout?<“服務類型:Priority:?“?<(iphead.byTOS?>>?5)?<“Service:?“?<((iphead.byTOS?>>?1)?&?0x0f)?< cout?<“IP包總長度:“?< switch?(int(iphead.byProtocolType))?{
case?1:cout?<“協議類型:ICMP“?< break;
case?2:cout?<“協議類型:IGMP“?< break;
case?6:cout?<“協議類型:TCP“?< break;
case?17:cout?<“協議類型:UDP“?< break;
}
cout?<“源地址:“?< cout?<“目的地址:“?<
cout?<“==============================================================“?< }
return?0;
}
void?AutoWSACleanup()
{
::WSACleanup();
}
int?main()
{
int?n;
WSADATA?wd;
n?=?WSAStartup(MAKEWORD(2?2)?&wd);
if?(n)
{
cout?<“WSAStartup函數錯誤!“?< return?-1;
}
atexit(AutoWSACleanup);
//創建SOCKET??
SOCKET?sock?=?socket(AF_INET?SOCK_RAW?IPPROTO_IP);
if?(sock?==?INVALID_SOCKET)
{
cout?< return?0;
}
//獲取本機地址??
char??name[128];
if?(-1?==?gethostname(name?sizeof(name)))
{
closesocket(sock);
cout?< 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?< 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?<
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????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++打造流星雨特效源代碼
評論
共有 條評論