Аргумент командной строки устройства libnet (сетевой интерфейс)

Я просто привожу проект libnet из https://github.com/sam-github/libnet/tree/master/libnet и я просматривал пример источника, поставляемого с ним. В примере получаем инициализацию cmd под названием "device" для инициализации ЛИБНЕТ. Я понял, что "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

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

да поможет тебе это удачи!

Другие вопросы по тегам