[求助] passthru 输出数据包内容

heqin509   2008-5-30 14:11 楼主
最近在研究NDIS,所以看了Windows防火墙与网络封包截获技术这本书,
里面有个源程序叫xpassthru的。可以实现调试输出接收到包的诸如大小,长度等信息。现在我想让它
输出源IP和目标IP以及端口,如果的TCP包 还想知道里面详细的内容,诸如GET。。一类的。

但是现在 我用
NdisQueryPacket(packet,&PhysicalBufferCount,&BufferCount,&FirstBuffer,&TotalPacketLength);
获得了FirstBuffer。我定义了以太头,IP头,TCP头的结构体,然后:

    iphd=(PIP_HEADER)((PCHAR)FirstBuffer+14);//获得IP地址,14是以太头长度
    iphdlen=(iphd->iph_verlen&0xf)*4;//计算IP头长度
    tcphd=(PTCP_HEADER)((PCHAR)iphd+iphdlen);//获得TCP地址

这样获得各部分的地址。
接着用Dbgprint();输出

不过这样输出的东西好象完全不对啊??这是怎么回事??
或者是我FirstBuffer完全没找对地方??或者是还要进行移位处理??
如果是要移位处理的话应该怎么做?请诸位不吝指教  感激不尽~~~~

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复