我一直在浏览net/core/dev.c和其他文件,以试图找出如何获取当前配置的网络设备的列表,事实证明这很难找到。

最终目标是能够使用dev.c中的dev_get_stats获取网络设备统计信息,但我需要了解当前接口(interface),以便可以获取net_device结构以进行传递。我必须在内核内部进行此操作我正在编写一个模块,该模块添加了一个新的/proc/条目,该条目与当前网络设备的某些统计信息有关,因此,根据我的收集,这必须在内核内部完成。

如果有人可以指出我如何获取接口(interface),将不胜感激。

最佳答案

这应该可以解决问题:

#include <linux/netdevice.h>

struct net_device *dev;

read_lock(&dev_base_lock);

dev = first_net_device(&init_net);
while (dev) {
    printk(KERN_INFO "found [%s]\n", dev->name);
    dev = next_net_device(dev);
}

read_unlock(&dev_base_lock);

关于linux - 获取Linux内核中的网络设备列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4494307/

10-11 23:20
查看更多