/dev/disk/ 列出磁盘,为什么 /dev/net/ 不列出网络接口?

ana*_*nik 6 linux networking udev

我知道udev管理设备/dev,我希望在那里找到有关可用网卡(硬件)或至少网络接口(软件)的信息。

ifconfig输出显示我eth0lo,但/dev/net为空。好吧,几乎是空的:

$ ls -la /dev/net
total 0
drwxr-xr-x  2 root root      60 Dec 13 09:37 .
drwxr-xr-x 15 root root    4300 Dec 15 12:12 ..
crw-rw-rw-  1 root root 10, 200 Dec 13 09:38 tun
Run Code Online (Sandbox Code Playgroud)

为什么没有关于网络接口的信息udev
我真的很想避免ifconfig在我的服务器进程中执行。

这与问题无关,但我希望在那里找到 id(“lo”、“eth0”)和 IP 地址。

der*_*ert 5

udev 不会为网卡创建任何 /dev 文件,因为网卡没有设备文件。网络接口是例外之一,一切都是文件

但是,您可以查看/sys/class/net. 它由内核直接维护,应该向您显示系统上的所有网络接口。您还可以从/proc(例如,/proc/net/dev)中获取列表。这些是特定于 Linux 的。

如果你在 C 中工作,你可以使用if_nameindex和朋友。