我正在编写一个程序,用户将在Linux下选择一些网络接口,如下所示:
Please select a network card:
1) enp2s0
2) wlan3
3) ppp2到目前为止,我没有任何问题。
但是,我希望用户看到更多的“描述性”名称,如下所示:
Please select a network card:
1) PCI Ethernet (enp2s0)
2) Wireless LAN (wlan3)
3) Dial-up connection (ppp2)问题:
/sys/class/net/.../type的代码结合在一起我知道Gnome桌面在网络状态下拉菜单中列出了"PCI以太网“之类的网络接口名称。因此,必须有某种方法来获取某个网络接口的“描述性”名称。
发布于 2020-01-08 12:53:00
Linux是否知道网络接口的“友好”名称?
不是的。
如果不是:是否有一种方法可以从界面名称中猜出用户友好的名称,并具有相当高的可靠性?
您可能可以进行您建议的概括。如果您是基于systemd的系统,请查看systemd网络命名方案,它显示了用于不同接口类型的前缀:
+--------+------------------------------------+
| Prefix | Description |
+--------+------------------------------------+
| en | Ethernet |
| ib | InfiniBand |
| sl | serial line IP (slip) |
| wl | Wireless local area network (WLAN) |
| ww | Wireless wide area network (WWAN |
+--------+------------------------------------+可能与/sys/class/net/./type中的代码结合使用?
我不确定type信息是否会有帮助。例如,以太网和无线接口都显示type of 1。另一方面,您可以肯定地识别ppp接口,例如,使用此值。
type的可能值在if_arp.h中可用。
发布于 2020-01-08 12:23:47
这些是本机命名策略系统使用的。旧的命名(eth0,wlan0,.)接口名是不可预测的(例如,您的第一个eth卡可以获得eth0以外的名称),这会导致各种问题。新的命名标准根据以下之一为接口指定名称:
系统将从1开始,下降到2,3,.
编辑:
我应该补充一下,如果你读了我发布的链接,你可以用你自己的名字!
您可以创建自己的手动命名方案,例如将接口命名为"internet0“、"dmz0”或"lan0“。为此,在/etc/systemd/ .link /中创建自己的文件,为其中一个、部分或所有接口选择显式名称或更好的命名方案。有关更多信息,请参见systemd.link(5)。
https://stackoverflow.com/questions/59644381
复制相似问题