c - 如何使用 libpcap 中的 "pcap_lookupdev()"?

标签 c linux libpcap

代码找不到任何设备,我想知道 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);
    }


}

最佳答案

pcap_lookupdev 似乎只返回它能找到的第一个设备(如果有的话),除了环回设备。

您是否以 root 身份运行它?不允许普通用户打开或检查这些设备。

我个人认为 pcap_lookupdev 毫无用处,因为您无法真正控制它为您提供的设备。

关于c - 如何使用 libpcap 中的 "pcap_lookupdev()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745996/

相关文章:

C 内联汇编 - 'fst' 的操作数类型不匹配

c++ - 在内核空间调用 NtQuerySystemInformation

linux - 对文本文件中的每一行进行排序

linux - 使用命令行 Linux 远程服务器运行并启动 denodo 平台,无需 GUI

c++ - 从未收到发送到本地主机端口的数据包

centos - Centos 6.x 中的 libpcap 静态链接

android - Android NDK : Compiling errors using libpcap for Android - functions “not declared in this scope”

c - 尝试将数据从 bmp 文件复制到文本文件

html - 为什么 fread() 不适用于包含 html 内容的文件?

mysql - mySQL 脚本中的语法错误?