1. 程式人生 > >pcap學習總結(一)——網絡卡型別,獲得指向網絡卡的指標,釋放網絡卡

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
)
功能:獲得指向網絡卡的指標(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型別

無返回值