上篇文章把经常用到的libpcap库讲解了一遍和使用实例来验证。 现在来看看上一篇中遗漏的经常用到的函数:
1) pcap_next_ex (pcap_next增强版)
pcap_next_ex(pcap_t* p,struct pcap_pkthdr** pkt_header,const u_char** pkt_data)
函数释义:从一个设备接口,或从一个脱机文件中,读取一个数据包,第一个参数代表设备句柄,第二个参数代表包头,第三个参数代表数据.
一般就是对第三个参数进行处理。 如果是pcap_loop的话,回调函数中也有这里的第二个参数和第三个参数,也同样进行处理。
2) pcap_findalldevs_ex(pcap_findalldevs增强版)
int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
遗憾的是在我的Centos系统当前开发环境中,没有找到扩展函数,只有pcap_findalldevs
函数释义:
创建一个网络设备列表,它们可以由 pcap_open()打开。对比pcap_findalldevs(),这个扩展表现在参数上,从上面可以看出来,前面两个参数是增加的,那么这个增加的参数就使打开查找远端网卡成为可能
下面是最简单的函数示例:
#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>
#include <arpa/inet.h>
#define CAP_LEN 1024
int main()
{
char device[100] = {0}; //用来存放设备名
char ebuf

本文是网络编程系列的一部分,主要补充了libpcap库中两个重要的函数:pcap_next_ex和pcap_findalldevs_ex。pcap_next_ex用于从设备或文件读取数据包,而pcap_findalldevs_ex(在某些环境中可能只提供基本版本pcap_findalldevs)则用于列出可打开的网络设备。通过这两个函数,开发者可以更深入地进行网络数据包捕获和设备管理。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



