中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

winpcap的使用

發布時間:2020-07-24 15:10:06 來源:網絡 閱讀:820 作者:以孤獨伴 欄目:網絡安全

獲取設備列表

1、通常,編寫基于WinPcap應用程序的第一件事情,就是獲得已連接的網絡適配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函數來實現這個功能: 這個函數返回一個 pcap_if 結構的鏈表, 每個這樣的結構都包含了一個適配器的詳細信息。值得注意的是,數據域 name 和 description 表示一個適配器名稱和一個可以讓人們理解的描述。

下列代碼能獲取適配器列表,并在屏幕上顯示出來,如果沒有找到適配器,將打印錯誤信息。


有關這段代碼的一些說明

首先, pcap_findalldevs_ex() ,和其他libpcap函數一樣,有一個 errbuf 參數。一旦發生錯誤,這個參數將會被libpcap寫入字符串類型的錯誤信息。

第二要記住,不是所有的操作系統都支持libpcap提供的網絡程序接口,因此,如果我們想編寫一個可移植的應用程序,我們就必須考慮在什么情況下, description 是 null。本程序中,我們遇到這種情況時,會打印提示語句"No description available"。 

最后要記住,當我們完成了設備列表的使用,我們要調用 pcap_freealldevs() 函數將其占用的內存資源釋放。 

讓我們編譯并運行我們的第一個示例程序吧! 為了能在Unix或Cygwin平臺上編譯這段程序,需要簡單輸入:

 gcc -o testprog testprog.c -lpcap


2、具體實現代碼:

// 1406404002.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);

}


3、具體配置:**=(1406404002)

項目-->**屬性(alt+F7)

配置屬性-->清單工具-->輸入和輸出-->嵌入清單-->否

項目-->**屬性(alt+F7)

配置屬性-->C/C++-->常規-->附加包含目錄-->例:C:\WpdPack_4_1_2\WpdPack\Include

項目-->**屬性(alt+F7)

配置屬性-->鏈接器-->常規-->附加庫目錄-->例:C:\WpdPack_4_1_2\WpdPack\Lib

項目-->**屬性(alt+F7)

配置屬性-->鏈接器-->輸入-->附加依賴項-->補充“;Packet.lib;wpcap.lib”

項目-->**屬性(alt+F7)

配置屬性-->C/C++-->預處理器-->預處理器定義-->補充“;HAVE_REMOTE”



4、在Windows平臺上,您需要創建一個工程,并按照 使用WinPcap編程里的步驟做。 然而,使用WinPcap developer's pack ( 詳情請訪問WinPcap網站, http://www.winpcap.org ), 因為它提供了很多已經配置好的范例,包括本教程中的所有示例代碼,以及在編譯運行時需要的 包含文件(include) 和 庫(libraries) jiash假設已經完成了對程序的編譯,之后運行它。在某臺WinXP的電腦上,我們得到的結果是:

   1. \Device\NPF_{4E273621-5161-46C8-895A-48D0E52A0B83} (Realtek RTL8029(AS) Ethernet Adapter)

   2. \Device\NPF_{5D24AE04-C486-4A96-83FB-8B5EC6C7F430} (3Com EtherLink PCI) 

運行結果:

winpcap的使用


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹山县| 汉源县| 万年县| 林西县| 新化县| 武川县| 临沭县| 丹东市| 炉霍县| 奉节县| 泗洪县| 新民市| 寿宁县| 思茅市| 孟村| 高邮市| 平原县| 辽源市| 商丘市| 平凉市| 连山| 邳州市| 托克托县| 洪湖市| 寿光市| 正定县| 建始县| 沅江市| 丰原市| 清水河县| 赞皇县| 邯郸县| 饶河县| 淮安市| 普陀区| 乌鲁木齐市| 兴安盟| 柯坪县| 沁水县| 黄龙县| 湖州市|