標籤:網路編程winpcap
WinPcap提供了 pcap_findalldevs_ex() 函數來實現這個功能: 這個函數返回一個 pcap_if 結構的鏈表, 每個這樣的結構都包含了一個適配器的詳細資料。值得注意的是,資料域 name 和 description 表示一個適配器名稱和一個可以讓人們理解的描述。
下列代碼能擷取適配器列表,並在螢幕上顯示出來,如果沒有找到適配器,將列印錯誤資訊。
核心代碼:
#include "pcap.h"main(){ pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE]; /* 擷取本地機器裝置列表 */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf); exit(1); } /* 列印列表 */ for(d= alldevs; d != NULL; d= d->next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->description); else printf(" (No description available)\n"); } if (i == 0) { printf("\nNo interfaces found! Make sure WinPcap is installed.\n"); return; } /* 不再需要裝置列表了,釋放它 */ pcap_freealldevs(alldevs);}int pcap_findalldevs_ex ( char * source, struct pcap_rmtauth * auth, pcap_if_t ** alldevs, char * errbuf )
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/89/4C/wKiom1gPC8_DBBWGAAATfyWcOjI925.png-wh_500x0-wm_3-wmp_4-s_1319930967.png" title="捕獲.PNG" alt="wKiom1gPC8_DBBWGAAATfyWcOjI925.png-wh_50" />
本文出自 “12034867” 部落格,請務必保留此出處http://12044867.blog.51cto.com/12034867/1865455
利用mic visual studio 2010 編譯器執行wincap擷取網路介面卡的代碼