CooSet
驱动牛犊
驱动牛犊
  • 注册日期2012-12-23
  • 最后登录2013-06-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1953回复:5

大神们,求助啊

楼主#
更多 发布于:2013-03-06 16:57
我把一个封包的内容全部拷贝到pPacketContent中。然后输出里面的源IP,目的IP,和协议类型
但是目的IP的内容和协议类型的内容是一样的?我截了图。
在PtReceive中加入的代码

                           if(pPacketContent[12] == 8 &&  pPacketContent[13] == 0 )
                {
                    DbgPrint("判断是否为以太包。如果为==8&&==6为ARP包\n");
                    pIPHeader = (PIP_HEADER)(pPacketContent+IP_OFFSET);

                    DBGPRINT("nSourIp源IP: %2x\n",pIPHeader->nSourIp);
                    DBGPRINT("MDip目的IP: %u\n",pIPHeader->nDestIp);
                    DBGPRINT("bProtocol: %u\n",pIPHeader->bProtocol);

pIPHeader 是结构体变量。IP_OFFSET=14
难道我本身就没有获取到全部的数据吗?

描述:图片

图片:QQ截图20130306165251.jpg

图片




大哥们,帮忙看一下

CooSet
驱动牛犊
驱动牛犊
  • 注册日期2012-12-23
  • 最后登录2013-06-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2013-03-06 19:05
还有就是以这样的格式打印出来协议类型都是很长的数字
DBGPRINT("协议类型 %d: %d\n",pPacketContent[12],pPacketContent[13]);

输出的结果是:-2115457168: 1  还有一些输出结果和这样的数字类似
像协议类型不都是整型的吗。为什么还有负数或者其他这么长的数字,好像都是随机的。
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2013-03-08 17:04
没看懂, 最好打印十六进制
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
CooSet
驱动牛犊
驱动牛犊
  • 注册日期2012-12-23
  • 最后登录2013-06-06
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2013-03-08 21:44
回 iihacker 的帖子
iihacker:没看懂, 最好打印十六进制 (2013-03-08 17:04)

上面的问题已经解决了,谢谢了你啦

现在又另外一个问题了

typedef struct _IP_HEADER {
 UINT bVerAndHLen ;  
 UINT bTypeOfService ;
 USHORT nTotalLength ;  
  USHORT nID ;
 USHORT nReserved ;  
 UINT bTTL ;  
 UINT bProtocol ;  
 USHORT nCheckSum ;  
UINT nSourIp ;   // 源IP32bit
 UINT nDestIp ;   // 目的IP32bit
} IP_HEADER, *PIP_HEADER ;

上面这个结构体,我想把源IP和 目的IP打印出来。用了很多的格式打印都是乱码,能告诉我用什么格式打印吗?

                                DbgPrint("源IP地址...\n");
                DbgPrint("%d.%d.%d.%d\n",pIP_header->nSourIp);
                DbgPrint("目的IP地址...\n");
                DbgPrint("%d.%d.%d.%d\n",pIP_header->nDestIp);
是这样吗?
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2013-04-19 15:17
0x%08x
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2013-04-19 15:18
                                DbgPrint("源IP地址...\n");
                DbgPrint("%d.%d.%d.%d\n",pIP_header->nSourIp);
                DbgPrint("目的IP地址...\n");
                DbgPrint("%d.%d.%d.%d\n",pIP_header->nDestIp);

你还是按照printf格式写吧,%d 个数和后面对不起来
NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
游客

返回顶部