91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

IP數(shù)據(jù)包的捕獲與解析,捕獲原則是規(guī)定IP數(shù)據(jù)包的個(gè)數(shù),C++語言實(shí)現(xiàn),控制臺輸出運(yùn)行結(jié)果

資源截圖

代碼片段和文件信息

//?PacketParse.cpp?:?定義控制臺應(yīng)用程序的入口點(diǎn)。
//

#include?“stdafx.h“
#include?
#include?
#include?
#pragma?comment(lib“ws2_32.lib“)?//加載ws2_32.lib

using?namespace?std;

#define?IO_RCVALL?_WSAIOW(IOC_VENDOR1)

typedef?struct?IP_HEAD?//定義IP頭部結(jié)構(gòu)
{
union
{
unsigned?char?Version;?//版本(字節(jié)的前4位)
unsigned?char?HeadLen;?//頭部長度(字節(jié)的后4位)
};
unsigned?char?ServiceType;?//服務(wù)類型
unsigned?short?TotallLen;?//總長度
unsigned?short?Identifier;?//標(biāo)識符
union?
{
unsigned?short?Flags;?//標(biāo)志位(字節(jié)的前3位)
unsigned?short?FragOffset;?//片偏移(字節(jié)的后13位)
};
unsigned?char?TimeToLive;?//生存周期
unsigned?char?Protocol;?//協(xié)議
unsigned?short?HeadChecksum;?//頭部校驗(yàn)和
unsigned?int?SourceAddr;?//源IP地址
unsigned?int?DestinAddr;?//目的IP地址
unsigned?char?Options;?//選項(xiàng)
}ip_head;

void?main()
{
int?packsum;
cout?< cin?>>?packsum;

//建立與Socket庫綁定
WSADATA?WSAData;?
if?(WSAStartup(MAKEWORD(2?2)?&WSAData)?!=?0)
{
cout?< return;
}

//創(chuàng)建原始Socket
SOCKET?sock?=?socket(AF_INET?SOCK_RAW?IPPROTO_IP);
if?(sock?==?INVALID_SOCKET)?
{
cout?< cout?< return;
}

//設(shè)置IP頭操作選項(xiàng)
int?flag?=?1;
if?(setsockopt(sock?IPPROTO_IP?IP_HDRINCL?(char*)&flag?sizeof(flag))
==?SOCKET_ERROR)?
{
cout?< cout?< return;
}

//獲得本地主機(jī)名
char?hostName[128];
if?(gethostname(hostName?100)?==?SOCKET_ERROR)?
{
cout?< return;
}

//獲取本地IP地址
hostent*?pHostIP;
if?((pHostIP?=?gethostbyname(hostName))?==?NULL)
{
cout?< return;
}

//填充sockaddr_in
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];

//socket綁定本地網(wǎng)卡
if?(bind(sock?(PSOCKADDR)&host_addr?sizeof(host_addr))?==?SOCKET_ERROR)
{
cout?< return;
}

DWORD?dwBufferLen[10];
DWORD?dwBufferInLen?=?1;
DWORD?dwBytesRetruned?=?0;
//設(shè)置socket接收所有IP包
if?(WSAIoctl(sock?IO_RCVALL?&dwBufferInLen?sizeof(dwBufferInLen)
&dwBufferLen?sizeof(dwBufferLen)?&dwBytesRetruned?NULL?NULL)
==?SOCKET_ERROR)
{
cout?< return;
}

cout?< char?buffer[65535];?//設(shè)置緩沖區(qū)大小
for?(int?i?=?0;?i? {
if?(recv(sock?buffer?65535?0)>0)
{
ip_head?ip?=?*(ip_head*)buffer;?//緩沖區(qū)內(nèi)容強(qiáng)制轉(zhuǎn)化

//逐位解析IP頭部的各字段信息
cout?< cout?<>?4)?< cout?< cout?<>?5)?< ((ip.ServiceType)?>>?1?&?0x0f)?< cout?< cout?<

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????70656??2014-11-25?17:04??PacketParse\Debug\PacketParse.exe

?????文件?????909044??2014-11-25?17:04??PacketParse\Debug\PacketParse.ilk

?????文件????1321984??2014-11-25?17:04??PacketParse\Debug\PacketParse.pdb

?????文件????3080192??2014-11-19?14:48??PacketParse\ipch\packetparse-d532772c\packetparse-83c17a3f.ipch

?????文件???????1463??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.log

?????文件?????195638??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.obj

?????文件???????1482??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\cl.command.1.tlog

?????文件??????31144??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\CL.read.1.tlog

?????文件????????976??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\CL.write.1.tlog

?????文件???????1248??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\link.command.1.tlog

?????文件???????2916??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\link.read.1.tlog

?????文件????????510??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\link.write.1.tlog

?????文件????????157??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog\PacketParse.lastbuildstate

?????文件??????11470??2014-11-25?16:08??PacketParse\PacketParse\Debug\stdafx.obj

?????文件?????773120??2014-11-25?17:04??PacketParse\PacketParse\Debug\vc120.idb

?????文件?????495616??2014-11-25?17:04??PacketParse\PacketParse\Debug\vc120.pdb

?????文件???????3903??2014-11-25?17:04??PacketParse\PacketParse\PacketParse.cpp

?????文件???????6345??2014-11-19?14:59??PacketParse\PacketParse\PacketParse.o

?????文件???????4620??2014-11-19?14:48??PacketParse\PacketParse\PacketParse.vcxproj

?????文件???????1318??2014-11-17?13:22??PacketParse\PacketParse\PacketParse.vcxproj.filters

?????文件???????1538??2014-11-17?13:22??PacketParse\PacketParse\ReadMe.txt

?????文件????????217??2014-11-17?13:22??PacketParse\PacketParse\stdafx.cpp

?????文件????????234??2014-11-17?13:22??PacketParse\PacketParse\stdafx.h

?????文件????????236??2014-11-17?13:22??PacketParse\PacketParse\targetver.h

?????文件???34537472??2014-11-27?13:16??PacketParse\PacketParse.sdf

?????文件????????979??2014-11-17?13:22??PacketParse\PacketParse.sln

????..A..H.?????18944??2014-11-27?13:16??PacketParse\PacketParse.v12.suo

?????目錄??????????0??2014-11-25?17:04??PacketParse\PacketParse\Debug\PacketParse.tlog

?????目錄??????????0??2014-11-19?14:48??PacketParse\ipch\packetparse-d532772c

?????目錄??????????0??2014-12-02?12:51??PacketParse\PacketParse\Debug

............此處省略7個(gè)文件信息

評論

共有 條評論