日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WinPcap编程3——获取网络适配器列表

發布時間:2023/11/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinPcap编程3——获取网络适配器列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WinPcap應用程序的第一件事情就是獲得已連接的網絡適配器列表。

WinPcap提供了pcap_findalldevs_ex() 函數來實現該功能: 它返回一個pcap_if結構的鏈表,每個這樣的結構都包含了一個適配器的詳細信息。

下列代碼能獲取適配器列表,并在屏幕上打印出其名稱和描述信息,如果沒有找到適配器,將打印錯誤信息。

#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);
}

這是一個非常典型的C代碼,過程比較簡單:首先通過pcap_findalldevs_ex獲取網絡適配器列表,網絡適配器列表信息保持在一個pcap_if_t指針中,它是一個經典的C式鏈表結構,可以通過這個指針遍歷所有的網絡適配器。最后,調用pcap_freealldevs釋放資源。

可以看出,每個網絡適配器的信息都保存在一個pcap_if_t結構中,除了本例中所示的一些信息外,它里面還包含不少有用的信息(mac地址、ip地址等),有興趣的朋友可以研究一下。

轉載于:https://www.cnblogs.com/TianFang/archive/2007/11/27/973673.html

總結

以上是生活随笔為你收集整理的WinPcap编程3——获取网络适配器列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。