基于socket套接字的IP数据包的抓取.docx_第1页
基于socket套接字的IP数据包的抓取.docx_第2页
基于socket套接字的IP数据包的抓取.docx_第3页
基于socket套接字的IP数据包的抓取.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于socket套接字的IP数据包的抓取SOCKET sock; WSADATA wsData;ofstream ofs(ip.log,ios:app);if (WSAStartup(MAKEWORD(2,2), &wsData) != 0)printf(WSAStartup failed!n);return -1;if ( ( sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP) ) = INVALID_SOCKET )printf(create socket failedn);return -1;BOOL flag = true;if ( setsockopt(sock, IPPROTO_IP, IP_HDRINCL,(char*)&flag, sizeof(flag) = SOCKET_ERROR )printf(setsockopt failed!n);return -1;char hostName128;if ( gethostname(hostName, 100) = SOCKET_ERROR )printf(gethostname failed!n);return -1;hostent* pHostIP;if( ( pHostIP = gethostbyname(hostName) ) = NULL )printf(gethostbyname failedn);return -1;sockaddr_in addr_in;addr_in.sin_addr = *(in_addr*)pHostIP-h_addr_list0;addr_in.sin_family = AF_INET;addr_in.sin_port = htons(6000);if ( bind(sock, (PSOCKADDR)&addr_in, sizeof(addr_in) = SOCKET_ERROR )printf(bind failedn);return -1;#define IO_RCVALL _WSAIOW(IOC_VENDOR,1) DWORD dwBufferLen10;DWORD dwBufferInLen = 1;DWORD dwBytesReturned = 0;char buffer100;if ( WSAIoctl(sock, IO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen),&dwBufferLen, sizeof(dwBufferLen), &dwBytesReturned, NULL, NULL) = SOCKET_ERROR )printf(ioctlsocket faildn);return -1;printf(Analysis IP Packet !nn);string s;char * p;char buffer1100;while ( true )int size = recv(sock, buffer, sizeof(buffer), 0);IP_HEADER ip = *(IP_HEADER *)buffer; cout - endl; s+=n-n;cout Version: 4) 4,buffer1,10);s+=Version: ;s+=buffer1;s+=n;cout IHL: ( (ip.HdrLen & 0x0f) * 4) endl; s+=IHL:;_itoa(ip.HdrLen & 0x0f)*4,buffer1,10);s+=buffer1;s+=n;cout Type of service: Priority 5) , Service 1 ) & 0x0f) 5,buffer1,10);s+=buffer1; s+=, Service; _itoa(ip.ServiceType 1 ) & 0x0f,buffer1,10);s+=buffer1;s+=n;cout TOtal Length: ip.TotalLen endl;s+=TOtal Length: ; _itoa( ip.TotalLen ,buffer1,10);s+=buffer1;s+=n;cout Identifcation: ip.ID endl;s+=Identifcation: ; _itoa( ip.ID ,buffer1,10);s+=buffer1;s+=n; cout sign: 15) & 0x01) , DF = 14) & 0x01) , Mf = 13) &0x01) 15) & 0x01,buffer1,10);s+=buffer1; s+= , DF = ; _itoa(ip.Flags 14) & 0x01,buffer1,10); s+=buffer1;s+=, Mf = ; _itoa(ip.Flags 13) & 0x01,buffer1,10); s+=buffer1;s+=n;cout Fragment offset: (ip.Fragoff & 0x1fff) endl; s+=Fragment offset: ; _itoa(ip.Fragoff & 0x1fff,buffer1,10); s+=buffer1;s+=n;cout Time to live: (int)ip.TimeToLive endl; s+=Time to live: ; _itoa(int)ip.TimeToLive ,buffer1,10); s+=buffer1;s+=n;cout Protocol: (int)ip.Protocol endl; s+=Protocol: ; _itoa(int)ip.Protocol ,buffer1,10); s+=buffer1;s+=n;cout Header Checksum: ip.HdrChksum endl; s+=Header Checksum: ; _itoa( ip.HdrChksum ,buffer1,10); s+=buffer1;s+=n;cout Source address: inet_ntoa(*(in_addr *)&ip.SrcAddr) endl; s+=Source address: ; s+=inet_ntoa(*(in_addr *)&ip.SrcAddr);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论