2019独角兽企业重金招聘Python工程师标准>>>

来自于《网络分析技术揭秘》前三章试读链接:http://book.2cto.com/201208/1359.html。我目前没有导出dll看过

一.wpcap.dll导出的函数

1.与libpcap库兼容的函数
第一部分是与libpcap库兼容的函数,其可兼容UNIX平台,所以这些函数可在Windows与Linux平台上工作

。这些函数如下所示。
pcap_open_live函数用于打开本地主机的网络适配,并且可进行网络数据包的捕获,其原型如下:
pcap_t *爌cap_open_live (const char *device, int snaplen, int promisc, int to_ms,
    char *ebuf);
pcap_open_dead函数用于创建一个pcap_t结构体,而不是用于数据捕获,其原型如下:
pcap_t *爌cap_open_dead (int linktype, int snaplen);
pcap_open_offline函数用于打开一个libpcap格式的存储文件,来读取数据包,其原型如下:
pcap_t *爌cap_open_offline (const char *fname, char *errbuf);
pcap_close函数用来释放打开函数pcap_openXXX所获得的相关资源,其原型如下:
void爌cap_close (pcap_t *p);
pcap_findalldevs函数用于返回所找到的适配器列表,其原型如下:
int爌cap_findalldevs (pcap_if_t **alldevsp, char *errbuf);
pcap_freealldevs函数用于释放由pcap_findalldevs返回的适配器列表,其原型如下:
void爌cap_freealldevs (pcap_if_t *alldevsp);
pcap_handler为捕获数据包的回调函数的原型,其原型如下:
typedef void(*爌cap_handler )(u_char *user, const struct pcap_pkthdr *pkt_header,
    const u_char *pkt_data);
pcap_dispatch函数用于接收一组数据包,其原型如下:
int爌cap_dispatch (pcap_t *p, int cnt, pcap_handler callback, u_char *user);
pcap_loop函数用于接收一组数据包,其原型如下:
int爌cap_loop (pcap_t *p, int cnt, pcap_handler callback, u_char *user);
pcap_breakloop函数用于设置一个标志位,该标志会强制pcap_dispatch函数或pcap_loop函数返回,不再

继续循环,其原型如下:
void爌cap_breakloop (pcap_t *);
pcap_next函数用于返回下一个可用的数据包,其原型如下:
u_char *爌cap_next (pcap_t *p, struct pcap_pkthdr *h);
pcap_next_ex函数用于从一个网络适配器设备或从一个脱机文件中读取一个数据包,替代pcap_next()函

数,其原型如下:
int爌cap_next_ex (pcap_t *p, struct pcap_pkthdr **pkt_header,
    const u_char **pkt_data);
pcap_sendpacket函数用于发送单个原始数据包一次或多次,其原型如下:
int爌cap_sendpacket (pcap_t *p, u_char *buf, int size);
pcap_compile函数用于将一个用高级语言描述的过滤表达式编译成一个能够被过滤虚拟机所执行的低层字

节码,其原型如下:
int爌cap_compile (pcap_t *p, struct bpf_program *fp, char *str,
    int optimize, bpf_u_int32 netmask);
pcap_comiple_nopcap函数用于将高级语言描述的过滤表达式转换成能被过滤虚拟机所执行的低层字节码

。该函数在不需要打开适配器的情况下就可以执行此转换,其原型如下:
int爌cap_compile_nopcap (int snaplen_arg, int linktype_arg,
    struct bpf_program *program, char *buf, int optimize, bpf_u_int32 mask);
pcap_setfilter函数用于将一个过滤器的字节码与一个内核捕获实例相关联,其原型如下:
int爌cap_setfilter (pcap_t *p, struct bpf_program *fp);
pcap_freecode函数用于释放pcap_compile或pcap_compile_nopcap函数用来存储字节码的program结构体

,其原型如下:
void爌cap_freecode (struct bpf_program *fp);
pcap_stats函数用于返回当前捕获的统计信息,其原型如下:
int爌cap_stats (pcap_t *p, struct pcap_stat *ps);
pcap_dump_open函数用于打开一个文件,写入数据包,其原型如下:
pcap_dumper_t *爌cap_dump_open (pcap_t *p, const char *fname);
pcap_dump函数用于将数据包存储到文件,其原型如下:
void爌cap_dump (u_char *user, const struct pcap_pkthdr *h, const u_char *sp);
pcap_dump_flush函数将输出缓冲写入存储文件,这样,任何使用pcap_dump函数存储但还没有写入文件的

数据包,会被立刻写入文件,其原型如下:
int爌cap_dump_flush (pcap_dumper_t *p);
pcap_dump_close函数用于关闭一个存储文件,其原型如下:
void爌cap_dump_close (pcap_dumper_t *p);
2.与libpcap不兼容的函数
第二部分是与libpcap不兼容的函数,是针对Windows平台的部分扩展函数,是对libpcap库的扩展,只能

用于Windows平台。
pcap_live_dump函数用于将捕获的数据存储到内核文件中,其原型如下:
int爌cap_live_dump (pcap_t *p, char *filename, int maxsize, int maxpacks);
pcap_live_dump_ended函数用于判断内核文件存储是否结束,其原型如下:
int爌cap_live_dump_ended (pcap_t *p, int sync);
pcap_stats_ex函数用于返回当前捕获的统计信息,其原型如下:
struct pcap_stat *爌cap_stats_ex (pcap_t *p, int *pcap_stat_size);
pcap_setmode函数用于将工作模式设置为mode,其原型如下:
int爌cap_setmode (pcap_t *p, int mode);
pcap_setmintocopy函数用于定义最少字节数,对适配器执行一次读操作时,要求内核缓冲区中的数据达

到该字节数后才可返回,其原型如下:
int爌cap_setmintocopy (pcap_t *p, int size);
pcap_sendqueue_alloc函数用于分配一个发送队列,其原型如下:
pcap_send_queue *爌cap_sendqueue_alloc (u_int memsize);
pcap_sendqueue_destroy函数用于释放与一个发送队列相关的所有资源,其原型如下:
void爌cap_sendqueue_destroy (pcap_send_queue *queue);
pcap_sendqueue_queue函数用于把一个原始数据包添加到queue参数所指定的发送队列的尾部,其原型如

下:
int爌cap_sendqueue_queue (pcap_send_queue *queue,
    const struct pcap_pkthdr *pkt_header, const u_char *pkt_data);
pcap_sendqueue_transmit函数用于发送一个数据包队列到网络,其原型如下:
u_int爌cap_sendqueue_transmit (pcap_t *p, pcap_send_queue *queue, int sync);
pcap_findalldevs_ex函数用于返回所找到的适配器列表,其原型如下:
int爌cap_findalldevs_ex (char *source, struct pcap_rmtauth *auth,
    pcap_if_t **alldevs, char *errbuf);
pcap_open函数用于打开一个通用的数据捕获源(包括本地主机、远程主机、文件三种类型),以便进行

捕获或发送操作,其原型如下:
pcap_t *爌cap_open (const char *source, int snaplen, int flags,
int read_timeout, struct pcap_rmtauth *auth, char *errbuf);

二.  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);

转载于:https://my.oschina.net/wolflion/blog/92768

【资料】wpcap.dll/Packet.dll库中相应函数相关推荐

  1. 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )

    文章目录 一.在 Visual Studio 2019 中创建 " 控制台应用 " 程序 二.拷贝 xxx.lib.xxx.dll.xxx.h 到源码路径 三.导入 xxx.h 头 ...

  2. Py之Numpy:Numpy库中常用函数的简介、应用之详细攻略

    Py之Numpy:Numpy库中常用函数的简介.应用之详细攻略 目录 Numpy库中常用函数的简介.应用 1.X, Y = np.meshgrid(X, Y) 相关文章 Py之Numpy:Numpy库 ...

  3. code::blocks自动补全诸如socket或者其它一些库中的函数

    如何让Ubuntu/winxp下面的code::blocks自动补全诸如socket或者其它一些库中的函数,宏之类的东西: 在project的parser里面将这些library的头文件包含进去即可, ...

  4. surprise库中evaluate函数弃用解决方法

    surprise库中evaluate函数弃用解决方法 代码:在数据集上测试效果 evaluate(self.svd, data, measures=['RMSE', 'MAE']) 运行报错:Impo ...

  5. python如何调用dll库中的函数_Python调用dll库接口-ctypes方法

    背景 最近需要用python写个脚本程序(win10 环境),需要调用现成的dll库完成这项任务,对于一直在Linux平台上开发程序的本人来说,从没有过使用dll的经历(不得不说还是so大法好),遇到 ...

  6. XLL 框架库中的函数

    这个框架库,可以让编写 XLL 更加容易.包含了管理 XLOPER/XLOPER12 内存的简单函数,创建临时 XLOPER/XLOEPR12 ,强制调用回调函数 (Excel4,Excel4v,Ex ...

  7. python调用js库中的函数_Python 调用JS文件中的函数

    Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...

  8. pandas库中unique函数方法

    pandas库中unique方法 (1)函数介绍 unique方法可以进行对于一列数据进行去重,并返回所有不同的值.如我们对数据集的标签页进行使用该函数,就可以输出一共有多少种标签类型. (2)代码 ...

  9. OpenCV库中watershed函数(分水岭算法)的详细使用例程

    # 声明:如果有写的不对的地方欢迎指正! 一.分水岭算法 关于分水岭算法的具体原理我就不说了,网上搜一下很多.OpenCV中的watershed函数实现的分水岭算法是基于"标记"的 ...

最新文章

  1. MySQL的用户和权限介绍
  2. 日本人真会玩!3天众筹60万元来造“机器猫”,会说话摇尾巴的那种
  3. 解读2019华为第001号文件:AI时代软件开发的第一要义是可信
  4. redis主从复制如何保证数据一致性_面试官:Redis 主从复制时网络开小差了怎么整?...
  5. java 的 AccessController.doPrivileged使用
  6. 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】
  7. MDB图表统计bootstrap后台模板
  8. 7000字整理: 全网最详细Pandas合并数据集操作总结
  9. MySQL常见的存储引擎的区别?
  10. Greenplum:你不可不知的实施与维护最佳实践
  11. go语言和php哪个建站好,从0开始Go语言,用Golang搭建网站
  12. 虚幻开放日2017ppt
  13. fisco bcos DagTransferUser.java 源码解析阅读注释
  14. 【数据分析】基于matlab焊缝边缘检测算法对比分析 【含Matlab源码 260期】
  15. 开发Connext DDS传输插件不用求人,看这一篇就够了
  16. 关于C语言中fseek函数的使用
  17. godspeed机器人_cs1.6kz地图包下载
  18. PDF怎么转换成CAD图纸?PDF转CAD教程
  19. 2dx cound not find libcocos2dcpp.so
  20. Android后台耗电分析及优化

热门文章

  1. 2016江苏计算机二级考试时间,2016年江苏计算机二级考试报名时间_无忧考网.pdf...
  2. 关于Simple Joule Theif Curcuit 电路的两个提问
  3. 2021年春季学期-信号与系统-第七次作业参考答案-第三小题
  4. 2021年春季学期-信号与系统-第五次作业参考答案-第十一移小题—MATLAB
  5. Prolific PL2303SA 调试
  6. 2021西南位育高考成绩查询,上海近40所高中2020高考录取情况汇总!
  7. html随机数游戏,js实现随机数小游戏
  8. merge into用法mysql_SQL中merge into用法
  9. 软件测试的测什么,软件测试人员应具备哪些能力?
  10. python 异常处理模块_我的python学习之路-异常处理和模块导入