pcap學習總結(一)——網絡卡型別,獲得指向網絡卡的指標,釋放網絡卡
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, |
char * | errbuf | ||
) |
引數: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型別
無返回值