求助!用过winpcap的帮下忙

red10057 2011-05-31 10:01:58
GetCurAdapterName()这个函数在winpcap的哪个头文件中啊?
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
red10057 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 naivec 的回复:]
GetCurAdapterName不是winpcap提供的

GetCurAdapterName可以参看GetAdaptersInfo
[/Quote]
谢谢
信阳毛尖 2011-06-01
  • 打赏
  • 举报
回复
给你一部分获取本机网卡信息的代码吧:
在对话框中添加一个CComboBox 控件,用于显示本机网卡列表(一台机器有可能有多个网卡,包括虚拟机的虚拟网卡等)

CComboBox NIC_List; //为CComboBox 声明一个对象(头文件中声明)

pcap_if_t *alldevs; // 保存网卡信息(一个结构体)
pcap_if_t *temp; // 在输出信息的地方做为中间变量,递增
pcap_t *p_pcap; //pcap_t结构体,保存一个已打开接口的详细信息,该结构体的结构不对用户公开,只是通过一个句柄来传递关于接口的参数。
char error_buf[PCAP_ERRBUF_SIZE];

// 获取网络设备列表
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, error_buf) == -1)
{
str.Format(_T("pcap_findalldevs运行错误: %s\n"), error_buf);
MessageBox( str,_T("错误!"),MB_ICONERROR);
return FALSE;
}

// 输出设备列表
for(temp=alldevs; temp; temp=temp->next)
{
if(temp->description)
str.Format(_T("%s"), temp->description);
else if(temp->name)
str.Format(_T("%s"),temp->name);
else
str.Format(_T("无可用网络设备信息"));
i++;
NIC_List.AddString(str);
}

if(i==0)
{
MessageBox(_T("找不到接口! 请确认您的Winpcap驱动是否安装."),_T("错误!"),MB_ICONERROR);
return
}

NIC_List.SetCurSel(0);


打开指定的CComboBox 列表中的网卡


int i;
for(temp=alldevs, i=0; i< NIC_select ;temp=temp->next, i++)
{
i=i;
}
if ( (p_pcap= pcap_open(temp->name, // 设备名
100, // 获取包的字节数(仅获取包的前100 bytes)
PCAP_OPENFLAG_PROMISCUOUS, // promiscuous 模式,即适配器(网卡)为混杂模式
1000, // read timeout
NULL, // authentication on the remote machine
error_buf // error buffer
) ) == NULL)
{
MessageBox(_T("不能打开网络适配器,WinPcap不支持此设备!"),_T("错误!"),MB_ICONERROR);
return;
}



打开指定的网卡后,就可用通过此网卡发送与接收报文了
信阳毛尖 2011-06-01
  • 打赏
  • 举报
回复
GetCurAdapterName是piggyxp自己写的函数,应该是把winpcap获取网卡信息的函数封装了,这里不能直接用
naiveC 2011-05-31
  • 打赏
  • 举报
回复
GetCurAdapterName不是winpcap提供的

GetCurAdapterName可以参看GetAdaptersInfo

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧