网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 免费数据包截获技术的研究与实现(七)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

免费数据包截获技术的研究与实现(七)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
免费数据包截获技术的研究与实现(七) );
 if (strFromIpFilter)
  if (strcmp(strFromIpFilter,szSourceIP)) return true;
//目的地址
 saDest.sin_addr.s_addr = pIpheader->destIP;
 strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);
 if (strDestIpFilter)
  if (strcmp(strDestIpFilter,szDestIP)) return true;
 iTTL = pIpheader->ttl;
 //计算IP首部的长度
  int iIphLen = sizeof(unsigned long) * (pIpheader->h_lenver & 0xf);
 //根据协议类型分别调用相应的函数
  switch(iProtocol)
  {
  case IPPROTO_TCP :DecodeTcpPack(buf+iIphLen, iBufSize);break;
  case IPPROTO_UDP :DecodeUdpPack(buf+iIphLen, iBufSize);break;
  case IPPROTO_ICMP :DecodeIcmpPack(buf+iIphLen, iBufSize);break;
 default    :break;
  }
TCP解包函数
int DecodeTcpPack(char * TcpBuf, int iBufSize)
{
 TCP_HEADER * pTcpHeader;
 int i;
 int iSourcePort,iDestPort;
 pTcpHeader = (TCP_HEADER * )TcpBuf;
 …
 //如果过滤敏感字符串则判断是否包含
 if (strSensitive)
  if ((strstr(TcpData, strSensitive))==NULL) return true;
 //对端口进行过滤
 iSourcePort = ntohs(pTcpHeader->th_sport);
 iDestPort = ntohs(pTcpHeader->th_dport);
 if ((iPortFilter) && (iSourcePort!=iPortFilter) && (iDestPort!=iPortFilter))
  return true;
 //输出
 printf("%s ", szProtocol);
 printf("%15s:%5d ->%15s:%5d  ", szSourceIP, iSourcePort, szDestIP, iDestPort);
 printf("TTL=%3d  ", iTTL);
…
 //对于长度大于40字节的包进行数据分析(IP_HEADER+TCP_HEADER=40)
 if ((ParamDecode) && (iBufSize>40))
 {
  //分析TCP数据段
  if ((!strSensitive) || (strstr(TcpData,strSensitive)))
  {
   printf(" [DATA]\n");
   printf("%s",TcpData);
   printf("\n [DATA END]\n\n\n");
  }
 }
 return true;
}
 
UDP解包函数
int DecodeUdpPack(char * UdpBuf, int iBufSize)
{
 UDP_HEADER *pUdpHeader;
 pUdpHeader = (UDP_HEADER * )UdpBuf;
 int iSourcePort = ntohs(pUdpHeader->uh_sport);
 int iDestPort = ntohs(pUdpHeader->uh_dport);
 //对端口进行过滤
 if(iPortFilter)
  if ((iSourcePort!=iPortFilter) && (iDestPort!=iPortFilter))
   return true;
 printf("%s ", szProtocol);
 printf("%15s:%5d ->%15s:%5d  ", szSourceIP, iSourcePort, szDestIP, iDestPort);
 printf("TTL=%3d ", iTTL);
 printf("Len=%4d ", ntohs(pUdpHeader->uh_len));
 printf("bytes=%4d", iBufSize);
 printf("\n");
 //对于长度大于28字节的包进行数据分析
(IP_HEADER+UDP_HEADER>28)
  if ((ParamDecode) && (iBufSize>28))
  {
   printf(" [DATA]\n");
   //UDP首部长度为8
   char * UdpData=UdpBuf+8;
   //分析UDP数据段
   for(unsigned int i=0;i<(iBufSize-sizeof(UDP_HEADER));i++)
   {
    if (!(i%8)) printf("\n");
    if ( (Ud

首页 上一页 4 5 6 7 8 9 下一页 尾页 7/9/9

免费数据包截获技术的研究与实现(七)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:免费手机吞吃蛇游戏的设计与开发 下一篇:免费网上战友录的设计与实现
推荐论文 本专业最新论文
Tags:数据 截获 技术 研究 实现 2010-04-01 10:52:35【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有