通常,編寫基于WinPcap應用程序的第一件事情,就是獲得已連接的網(wǎng)絡適配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函數(shù)來實現(xiàn)這個功能: 這個函數(shù)返回一個 pcap_if 結構的鏈表, 每個這樣的結構都包含了一個適配器的詳細信息。值得注意的是,數(shù)據(jù)域 name 和 description 表示一個適配器名稱和一個可以讓人們理解的描述。
做網(wǎng)站、網(wǎng)站建設的開發(fā),更需要了解用戶,從用戶角度來建設網(wǎng)站,獲得較好的用戶體驗。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡公司,打造的就是網(wǎng)站建設產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務。
首先, pcap_findalldevs_ex() ,和其他libpcap函數(shù)一樣,有一個 errbuf 參數(shù)。一旦發(fā)生錯誤,這個參數(shù)將會被libpcap寫入字符串類型的錯誤信息。第二要記住,不是所有的操作系統(tǒng)都支持libpcap提供的網(wǎng)絡程序接口,因此,如果我們想編寫一個可移植的應用程序,我們就必須考慮在什么情況下, description 是 null。本程序中,我們遇到這種情況時,會打印提示語句"No description available"。
最后要記住,當我們完成了設備列表的使用,我們要調用 pcap_freealldevs() 函數(shù)將其占用的內存資源釋放。
讓我們編譯并運行我們的第一個示例程序吧!
實現(xiàn)代碼:
// aa.cpp : 定義控制臺應用程序的入口點。
#include "stdafx.h"
#include "pcap.h"
int _tmain(int argc, _TCHAR* argv[])
{
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 0;
}
/* 不再需要設備列表了,釋放它 */
pcap_freealldevs(alldevs);
}
運行
本文題目:基于WinPcap獲取設備列表
本文鏈接:http://m.newbst.com/article10/isgido.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、微信公眾號、網(wǎng)站導航、網(wǎng)站設計、響應式網(wǎng)站、面包屑導航
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)