读书频道 > 网站 > 网页设计 > 网络分析技术揭秘:原理、实践与WinPcap深入解析
2.5.2 Packet.dll库中的重要函数
12-08-11    叶孤城
收藏    我要投稿   
本书结合著名的开源软件库WinPcap来说明网络分析技术的实现原理及使用方法。其中包括WinPcap内核驱动,编译与使用,数据包的捕获、发送、内核过滤与接收,以及网络流量的统计与网络状态的分析等重要内容,而且作...立即去当当网订购
Packet.dll库中的重要函数简介如下。
PacketGetAdapterNames函数用于获取可用网络适配器的列表,以及它们对应的描述,其原型如下:
BOOLEAN PacketGetAdapterNames(PTSTR pStr,PULONG  BufferSize);
PacketGetNetInfoEx函数用于获得一个适配器的所有地址信息,诸如IP地址、网络掩码地址与广播地址等,其原型如下:
BOOLEAN PacketGetNetInfoEx(PCHAR AdapterName, npf_if_addr* buffer, PLONG NEntries);
PacketOpenAdapter函数用于打开一个适配器,其原型如下:
LPADAPTER PacketOpenAdapter(PCHAR AdapterNameWA);
PacketCloseAdapter函数用于关闭一个给定的适配器并释放相关的ADAPTER结构体资源,其原型如下:
VOID PacketCloseAdapter(LPADAPTER lpAdapter);
PacketSendPacket函数用于发送封装后的数据包到网络上,其原型如下:
BOOLEAN PacketSendPacket(LPADAPTER AdapterObject,LPPACKET lpPacket,BOOLEAN Sync);
PacketSendPackets函数用于把发送队列中的待发数据包发送到网络上,其原型如下:
INT PacketSendPackets(LPADAPTER AdapterObject, PVOID PacketBuff,
    ULONG Size, BOOLEAN Sync);
PacketAllocatePacket函数用于分配一个_ADAPTER结构体内存空间,其原型如下:
LPPACKET PacketAllocatePacket(void);
PacketInitPacket函数主要用于初始化一个_PACKET结构体,其原型如下:
VOID PacketInitPacket(LPPACKET lpPacket,PVOID Buffer,UINT Length);
PacketFreePacket函数用于释放一个_ADAPTER结构体内存空间,其原型如下:
VOID PacketFreePacket(LPPACKET lpPacket);
PacketReceivePacket函数用于从NPF驱动程序中读取数据,其原型如下:
BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject,
    LPPACKET lpPacket,BOOLEAN Sync);
PacketSetHwFilter函数用于给到来的数据包设置一个硬件过滤条件,其原型如下:
BOOLEAN PacketSetHwFilter(LPADAPTER  AdapterObject,ULONG Filter);
PacketSetNumWrites函数用于设置单个数据包重复发送的次数,其原型如下:
BOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject,int nwrites);
PacketRequest函数用于在驱动程序上执行一个参数的查询/设置操作,其原型如下:
BOOLEAN PacketRequest(LPADAPTER  AdapterObject,BOOLEAN Set,
    PPACKET_OID_DATA  OidData);
PacketSetBuff函数用于设置一个与捕获实例相关的内核缓冲区大小,其原型如下:
BOOLEAN PacketSetBuff(LPADAPTER AdapterObject,int dim);
PacketSetBpf函数用于设置一个内核级的数据包过滤器,其原型如下:
BOOLEAN PacketSetBpf(LPADAPTER AdapterObject, struct bpf_program *fp);
PacketGetStats函数用于为当前捕获会话返回状态统计信息值,其原型如下:
BOOLEAN PacketGetStats(LPADAPTER AdapterObject,struct bpf_stat *s);
PacketGetStatsEx函数用于返回当前捕获会话的状态统计信息值,它为PacketGetStats函数的加强版(具体内容见后面的章节),其原型如下:
BOOLEAN PacketGetStatsEx (LPADAPTER AdapterObject,struct bpf_stat *s;)
PacketGetNetType函数用于返回一个适配器网络数据链路层的类型信息,其原型如下:
BOOLEAN PacketGetNetType(LPADAPTER AdapterObject, NetType *type);
PacketSetReadTimeout函数用于设置一个适配器上读操作的超时时间,其原型如下:
BOOLEAN PacketSetReadTimeout(LPADAPTER AdapterObject,int timeout);
PacketSetMode函数用于设置NPF的工作模式,其原型如下:
BOOLEAN PacketSetMode(LPADAPTER AdapterObject,int mode);
PacketSetMinToCopy函数用于定义最少字节数,对适配器执行一次读操作时,只有内核缓冲区中的数据达到该字节数后才可以返回,其原型如下:
BOOLEAN PacketSetMinToCopy(LPADAPTER AdapterObject,int nbytes);
PacketSetDumpName函数用于告诉内核驱动程序NPF内核转储文件的名称,其原型如下:
BOOLEAN PacketSetDumpName(LPADAPTER AdapterObject, void *name, int len);
PacketSetDumpLimits函数用于设置内核转储的限制值,包括文件所能存储的最大字节数与最大数据包数,其原型如下:
BOOLEAN PacketSetDumpLimits(LPADAPTER AdapterObject,
    UINT maxfilesize, UINT maxnpacks);
PacketIsDumpEnded函数用于返回内核转储过程的状态,比如告诉通过PacketSetDumpLimits函数设置的一个限制是否已经达到,其原型如下:
BOOLEAN PacketIsDumpEnded(LPADAPTER AdapterObject, BOOLEAN sync);
PacketSetLoopbackBehavior函数用于设置NPF驱动程序对环回数据的处理方式(捕获或丢弃),其原型如下:
BOOLEAN PacketSetLoopbackBehavior(LPADAPTER AdapterObject, UINT LoopbackBehavior);
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站