pcap学习总结(一)——网卡类型,获得指向网卡的指针,释放网卡

本文介绍了pcap接口的基础知识,包括pcap_if_t结构体用于存储网卡信息,pcap_findalldevs_ex和pcap_findalldevs函数获取网卡设备指针,以及pcap_freealldevs函数释放资源。通过这些函数,开发者可以有效地管理和操作网络接口。

1:pcap_if_t:typedef struct pcap_if pcap_if_t 保存网卡基本信息的类型。通常用指针来使用,pcap_if_t *alldevs

struct pcap_if

{

struct pcap_if *next;//指向下一个网卡

char *name;//网卡的标识符,唯一识别一个网卡

char *description;//用来描述网卡

struct pcap_addr*address;//网卡的地址,包括IP地址,网络掩码,广播地址等,类型中的成员变量在后面会写到

bpf_u_int32 flags;//接口标志
}

2:

int pcap_findalldevs_ex( char *  source,
   struct pcap_rmtauth *  auth,
   pcap_if_t **  alldevs,
   char *  errbuf 
 )
功能:获得指向网卡的指针(alldevs),这个即可以指向 本地也可以指向 远程

参数:source:网卡设备的源位置  如:rpcap://host:port' ;auth来表示是否是远程主机,要是本地的则设置为NULL;alldevs用来保存设备的指针;errbuf用来保存出错误时的信息

返回值:0代表成功,-1代表不成功

通常用这个方法来获得1中的pcap_if_t的指针

eg:

pcap_if_t *alldevs;

char errbuf[16];

pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)

#define PCAP_SRC_IF_STRING   "rpcap://"

3:int pcap_findalldevs(pcap_if_t **alldevs,char *errbuf)

功能:获得指向网卡的指针,与2一样,但只能获得本地网卡

参数: 以2中一样

返回值:0成功,-1不成功
4:void pcap_freealldevs(pcap_if_t**alldevs)

功能:释放所指的设备

参数:alldevs指向设备的pcap_if_t类型

无返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值