supermj
驱动牛犊
驱动牛犊
  • 注册日期2006-05-31
  • 最后登录2008-06-11
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:2225回复:0

怎样获取本机发出的arp包的数量

楼主#
更多 发布于:2008-02-01 11:02
1、方法一   Iphlpapi
if   ((dwRetVal   =   GetIfTable(ifTable,   &dwSize,   0))   ==   NO_ERROR)   {
    if   (ifTable-> dwNumEntries   >   0)   {
    pMibIfRow-> dwIndex   =   2;
    outppt   =   pMibIfRow-> dwOutUcastPkts;
    descr.   Format("%ld",outppt);
    AfxMessageBox(_T(   descr));
                                                  }
}
获得的dwOutUcastPkts是本机发出的包的数量,但是我做试验用wpcap开发的工具发的arp包没有被dwOutUcastPkts统计出来,没有用。
2、方法二   用wpcap
if   (*(unsigned   short   *)(pkt_data+12)   ==   htons(2054)   &&   *(unsigned   short*)(pkt_data+20)==htons(1))
                              ArpRequest++;
是arp协议的就统计出来,但不是本机发出的

3、方法三
if(   (capstat   =   pcap_stats(pfp,   &pstat   ))==0)
psent   =pstat.ps_sent;
我发arp包,psent总是为0

我没有什么思路了,各位大哥指点一下。。。。。。。。。。。

游客

返回顶部