LinuxForum.Fans
Тема

libpcap, не находит ни одного устройства

Автор: unk 5 сообщений 1870 просмотров
#168424

Код использующий библиотеку pcap

text

#include <pcap.h>

int main() { pcap_if_t *alldevs; pcap_if_t *d; int i=0; char errbuf[PCAP_ERRBUF_SIZE];

/* Retrieve the device list from the local machine */ if (pcap_findalldevs(&alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf); return -1; }

fprintf(stderr, "%s\n", errbuf); /* Print the list */ 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 -1; }

/* We don't need any more the device list. Free it */ pcap_freealldevs(alldevs); return 0; }

Функция pcap_findalldevs завершается без ошибок. Но после ее вызова в errbuf находится следующая строка

text

usbmon5: Can't open USB bus file /sys/kernel/debug/usbmon/5t: No such file or directory

В итоге alldevs == NULL. В чем может быть проблема?

#168431

от root'а запускаете?
и модуль usbmon подгружен? и dubugfs смонтирован?
и на всякий случай какая у вас версию ядра... в новых ядрах файлы usbmon вроде находится в /sys/kernel/debug/usb/usbmon/. в общем покажите ls -l обоих каталогов или того, который есть.

#168585

Запускаю не от root'а. Это обязательно?
Версия ядра 2.6.32, дистр Debian Squeezy.
Содержимое каталогов покажу завтра.

#168594
unk написал:
Запускаю не от root'а. Это обязательно?

да... можно ещё chmod'ить файлы в соответствующем каталоге, но безопасней запускать от root'а.
Точнее конечно безопасней их chgrp'ить на специальную группу, используемую специально для этого...

#168629

Да, от рута все получилось. Сообщение про "не могу открыть файл" все равно выдает, но список интерфейсов есть

Войдите или зарегистрируйтесь, чтобы ответить.