3

コードはデバイスを見つけることができません。 pcap_lookupdev() が何をするのか知りたいですか? ありがとう

#include <pcap.h>
int main(int argc, char *argv[])
{
    pcap_t *handle;

    char *dev;// = "eth0";
    char errbuf[PCAP_ERRBUF_SIZE];
    dev = pcap_lookupdev(errbuf);
    if (dev == NULL) {
        fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
        return(2);
    }
    printf("Device: %s\n", dev);
    return(0);

    handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
    if (handle == NULL) {
        fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
        return(2);
    }


}
4

3 に答える 3

8

pcap_lookupdev は、ループバック デバイスを除いて、(もしあれば) 最初に見つけたデバイスを返すようです。

これを root として実行しますか? 通常のユーザーは、これらのデバイスを開いたり検査したりすることはできません。

個人的には、pcap_lookupdev が提供するデバイスを実際に制御できないため、pcap_lookupdev はかなり役に立たないと思います。

于 2010-09-19T14:32:54.910 に答える
0

pcap プログラミングをコンパイルするとき。-lpcapプログラムファイルの最後に、ルート権限で言及する必要があります。例えば。

#gcc YourFileName.c -lpcap
#./a.out
or
#gcc -Wall -o YourFileName YourFileName.c -lpcap
#./YourFileName

ここで、# は root ユーザーを示し、gcc は GNU Compiler Collection を示し、-lpcap は libpcap ライブラリを使用することを示します。

于 2015-04-18T16:54:23.027 に答える