基于WinPcap獲取設(shè)備列表

    通常,編寫基于WinPcap應(yīng)用程序的第一件事情,就是獲得已連接的網(wǎng)絡(luò)適配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函數(shù)來(lái)實(shí)現(xiàn)這個(gè)功能: 這個(gè)函數(shù)返回一個(gè) pcap_if 結(jié)構(gòu)的鏈表, 每個(gè)這樣的結(jié)構(gòu)都包含了一個(gè)適配器的詳細(xì)信息。值得注意的是,數(shù)據(jù)域 name 和 description 表示一個(gè)適配器名稱和一個(gè)可以讓人們理解的描述。

做網(wǎng)站、網(wǎng)站建設(shè)的開發(fā),更需要了解用戶,從用戶角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

   首先, pcap_findalldevs_ex() ,和其他libpcap函數(shù)一樣,有一個(gè) errbuf 參數(shù)。一旦發(fā)生錯(cuò)誤,這個(gè)參數(shù)將會(huì)被libpcap寫入字符串類型的錯(cuò)誤信息。第二要記住,不是所有的操作系統(tǒng)都支持libpcap提供的網(wǎng)絡(luò)程序接口,因此,如果我們想編寫一個(gè)可移植的應(yīng)用程序,我們就必須考慮在什么情況下, description 是 null。本程序中,我們遇到這種情況時(shí),會(huì)打印提示語(yǔ)句"No description available"。 

    最后要記住,當(dāng)我們完成了設(shè)備列表的使用,我們要調(diào)用 pcap_freealldevs() 函數(shù)將其占用的內(nèi)存資源釋放。 

讓我們編譯并運(yùn)行我們的第一個(gè)示例程序吧! 

實(shí)現(xiàn)代碼:

// aa.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。

#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];

    /* 獲取本地機(jī)器設(shè)備列表 */

    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;

    }

    /* 不再需要設(shè)備列表了,釋放它 */

    pcap_freealldevs(alldevs);

}

運(yùn)行

基于WinPcap獲取設(shè)備列表

本文題目:基于WinPcap獲取設(shè)備列表
本文鏈接:http://bm7419.com/article10/isgido.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、微信公眾號(hào)、網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作