我只是来自https://github.com/sam-github/libnet/tree/master/libnet的git libnet项目,我一直在查看随其提供的示例源代码。该示例获取了一个名为“device”的cmd arg来初始化libnet。我发现“eth0”是Linux操作系统上的正确值,但我使用的是Windows 7,我的问题是我可以在Windows上用作设备的值。
l = libnet_init(
LIBNET_RAW4, /* injection type */
device, /* network interface */
errbuf); /* errbuf */
我尝试了许多值,如适配器名称,设备索引等......但每次我收到此错误:
libnet_init() failed: libnet_link_win32.c(): unable to open the driver, error Code : 14
答案 0 :(得分:1)
我对同样的问题感到困惑。 它可以这样解决。
在lib wpcap
中有一个名为pcap_findalldevs();
像这样使用它你会成功
int Value = pcap_findalldevs(&alldevs,errbuf);
if( Value == -1)
{
fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
exit(1);
}
char *device = NULL;
device = alldevs->name; //get the first Card name
libnet_t *l
l = libnet_init(
LIBNET_LINK_ADV,
device,//use it here
error_information);
这可能对你有所帮助。祝你好运!