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

  • 大小: 1.96MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-21
  • 語言: C/C++
  • 標簽:

資源簡介

運用C++程序編程 實現IP數據報的捕獲和解析 工程文件和課程設計報告全部都有 物超所值!

資源截圖

代碼片段和文件信息

#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:\\file1.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();?
//goto?exit_clean;?
}?
BOOL?flag=TRUE;?
//設置SockRaw這個套接字的ip選項中的IP_HDRINCL(包含首部)
if(setsockopt(sockIPPROTO_IPIP_HDRINCL(char?*)?&flagsizeof(flag))==SOCKET_ERROR)?
{?
cout<closesocket(sock);?
WSACleanup();?
//goto?exit_clean;?
}?
char?hostName[128];?//獲取主機名?
if(gethostname(hostName100)==SOCKET_ERROR)?
{?
cout<closesocket(sock);?
WSACleanup();?
//goto?exit_clean;?
}?
hostent?*pHostIP;?//獲取本地IP
if((pHostIP=gethostbyname(hostName))==NULL)?
{?
cout<closesocket(sock);?//綁定網卡
WSACleanup();?
//goto?exit_clean;?
}?
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();?
//goto?exit_clean;?
}?
DWORD?dwBufferLen[10];?
DWORD?dwBufferInLen=1;?
DWORD?dwBytesReturned=0;?
if(WSAIoctl(sock??IO_RCVALL?&dwBufferInLen??sizeof(dwBufferInLen)??&dwBufferLensizeof(dwBufferLen)&dwBytesReturnedNULLNULL)==SOCKET_ERROR)?
{?
cout<closesocket(sock);?//將網卡設為混雜模式,以接受所有數據
WSACleanup();?
//goto?exit_clean;?
}?
cout<char?buffer[65535];?//設置緩沖區
int?packsum=atoi(argv[1]);?//字符串轉換為整形
for(int?i=0;i{?
if(recv(sockbuffer655350)>0)?//四個參數分別是套接字描述符,緩沖區的地址,緩沖區大小,附加標志
{?
ip_head?ip=*(ip_head?*)buffer;?
cout<<“-----------------------“<cout<<“版本:“<<(ip.Version>>4)<cout<<“頭部長度:“<<((ip.HeadLen?&0x0f)*4)<cout<<“服務類型:Priority“<<(ip.ServiceType>>5)<<“?Service“<<((ip.ServiceType>>1)&0x0

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????162816??2009-06-25?10:07??二版\IP數據包.doc

?????文件???????4729??2009-06-25?09:43??二版\ipparse\ipparse.cpp

?????文件???????3413??2009-06-25?10:07??二版\ipparse\ipparse.dsp

?????文件????????539??2009-06-25?10:07??二版\ipparse\ipparse.dsw

?????文件??????41984??2009-06-25?10:07??二版\ipparse\ipparse.ncb

?????文件??????48640??2009-06-25?10:07??二版\ipparse\ipparse.opt

?????文件????????751??2009-06-25?10:07??二版\ipparse\ipparse.plg

?????文件?????557149??2009-06-25?10:07??二版\ipparse\Debug\ipparse.exe

?????文件?????820384??2009-06-25?10:07??二版\ipparse\Debug\ipparse.ilk

?????文件?????266762??2009-06-25?10:07??二版\ipparse\Debug\ipparse.obj

?????文件????5635388??2009-06-25?10:07??二版\ipparse\Debug\ipparse.pch

?????文件????1131520??2009-06-25?10:07??二版\ipparse\Debug\ipparse.pdb

?????文件?????197632??2009-06-25?10:07??二版\ipparse\Debug\vc60.idb

?????文件?????143360??2009-06-25?10:07??二版\ipparse\Debug\vc60.pdb

?????目錄??????????0??2010-06-28?06:44??二版\ipparse\Debug

?????目錄??????????0??2010-06-28?06:44??二版\ipparse

?????目錄??????????0??2010-06-28?06:44??二版

-----------?---------??----------?-----??----

??????????????9015067????????????????????17


評論

共有 條評論

相關資源