永发信息网

WinPcap获取网络接口列表的问题

答案:1  悬赏:30  手机版
解决时间 2021-02-26 20:05
我用WinPcap的pcap_findalldevs()函数获得网络接口列表

结果返回了三个接口,其中第三个才是我的网卡

但我的机只有一个网卡,请问是怎么回事?

怎么知道当前计算机使用的是哪个接口呢?
------------------------------------
在C++版块提了一个相同的问题,但到现在还没人回答,所以在VC版块重复一遍^_^

http://zhidao.baidu.com/question/45975962.html
最佳答案
WinPcap的pcap_findalldevs()函数我个人感觉不稳定,我比较喜欢用IP Help API获得网卡名称再用Pcap操作

假设有结构体
typedef struct NicItem
{
int nItem;
char name[100];
char description[100];
}NICTIEM;
在来个CArray,有2张网卡以上就加入CArray
CArray <NICITEM,NICITEM&> arrNicItem;

typedef DWORd(CALLBACK *PGAINFO)(PIP_ADAPTER_INFO,PULONG);
PGAINFO pGAInfo;
//加载IP Helper API 所需的库文件
HINSTANCE hInst;//实例句柄
hInst=LoadLibrary("iphlpapi.dll");
if(!hInst)
AfxMessageBox("iphlpapi.dll not supported in this platform!\n");
pGAInfo=(PGAINFO)GetProcAddress(hInst,"GetAdaptersInfo");
////------------------------------------》获得网卡数据
PIP_ADAPTER_INFO pInfo=NULL, pInfoTemp=NULL;
ULONG ulSize=0;
pGAInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小
pInfoTemp=pInfo=(PIP_ADAPTER_INFO)new(char[ulSize]);
if( pGAInfo(pInfo,&ulSize) != ERROR_SUCCESS)
return;

DWORD dwLocalIP = 0;
for( ; pInfo; pInfo=pInfo->Next)
{
Device->AddString(pInfo->Description);

NICITEM nic;
nic.nItem = pInfo->Index;
strcpy_s(nic.name, "\\Device\\NPF_"); //加上前缀以被PCAP识别
strcat_s(nic.name, pInfo->AdapterName);
strcpy_s(nic.description, pInfo->Description);

arrNicItem.Add(nic);
}
delete pInfoTemp;

然后用pcap做你想做的事就行了
比如

pcap_t *m_fp;
char errbuf[PCAP_ERRBUF_SIZE] = "";
//打开网卡
if(!(m_fp = pcap_open_live(arrNicItem.GetAt().name,// name of the device
256, // portion of the packet to capture, max 65536
0, // promiscuous mode closed
10, // read timeout
errbuf))) // error buffer
{
...
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
汽车票可以改签或退票吗
王国维认为“周人嫡庶之制,本为天子、诸侯继
文登市毅志服装有限公司这个地址在什么地方,
什么时间去梅里雪山旅游最合适?
“固”在古代文言文中的用法及意思
已知有理数、所对应的点在数轴上如图所示,化
大连哪里屈臣世有几家 都在哪?还有哪里有卖
我是英语专业的学生,我们学校不允许我们考四
番茄酱胀袋还能吃吗,我觉得挺好吃的,还有种
旭派电池分几种怎么区分?
飞达校办企业公司教学设备厂在哪里啊,我有事
洛奇里如何制作衣服?急!
动漫闺蜜头像一冷酷一可爱
新国光鞋服地址在哪,我要去那里办事
7座新面包车上户可以上成货运吗,如果可以如
推荐资讯
火影鸣人VS佐助、斑是第几集?拜托各位大神
—The sports meeting will be till next we
万祥鞋城地址在什么地方,想过去办事
抗震设防烈度8度时,多少米以上的悬挑阳台和
我是山东体育生,眼看着要考试了,而我的篮球
VBA 把EXCEL单元格中的数据如何复制到CSV文件
一根绳子,剪去20%,正好剪去3米,这根绳子有多
请问从格兰仕去小榄车站做什么车好?如果是公
甲、乙两车分别从东西两站同时出发,相向而行,
签公司劳动合同时遇到以下条款,不知是否合法
讷河开轻酒吧怎么样,就是那种安静有歌手唱歌
看看我的咸丰重宝当十值多少钱?是哪个局的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?