ana*_*nik 6 linux networking udev
我知道udev管理设备/dev,我希望在那里找到有关可用网卡(硬件)或至少网络接口(软件)的信息。
ifconfig输出显示我eth0和lo,但/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 地址。
udev 不会为网卡创建任何 /dev 文件,因为网卡没有设备文件。网络接口是例外之一,一切都是文件。
但是,您可以查看/sys/class/net. 它由内核直接维护,应该向您显示系统上的所有网络接口。您还可以从/proc(例如,/proc/net/dev)中获取列表。这些是特定于 Linux 的。
如果你在 C 中工作,你可以使用if_nameindex和朋友。