使用 c/c++ 获取以太网名称、类、描述供应商、子系统等在基于 Linux 的系统上
使用 ioctl 接口可以获取各种信息。如何获取产品名称、类别、供应商名称、子系统名称等额外信息?
有几个可用的命令行工具,例如: 1. lshw -C 网络
2. 检测加载 Linux 的系统上的网卡和端口
您可以启动一个进程并获取结果,但是是否有任何原始 C/C++ 方法来获取上述信息?
干杯
普拉桑特
Using ioctl interface various info can be fetched. How do you get extra info like product name, class, vendor name, subsystem name etc?
There are couple of command line tools available such as:
1. lshw -C network
2. detecting nic and ports on systems loaded with linux
You can start a process and get the result but Is there any raw c/c++ method to get above mentioned information?
Cheers
Prashant
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您寻找的所有信息都在
/sys/bus/pci/devices/*/*
中:您可以使用
查看
,lspci(8)
如何读取文件strace -o /tmp/out lspci/tmp/out
将包含大量详细信息。 (我不知道有什么简单的方法可以将其限制为仅网卡;我认为lspci(8)
和内核都很难- PCI ID 的编码列表 -> 名称映射。)All the information you seek is in
/sys/bus/pci/devices/*/*
:You can see how
lspci(8)
reads through the files withstrace -o /tmp/out lspci
,/tmp/out
will have plenty of details. (I don't know any easy way to restrict this to just the NICs; I think bothlspci(8)
and the kernel have hard-coded lists of PCI ID -> name mappings.)查看 sysfs 或 procfs,不幸的是这些信息经常被更改,因此不能依赖:(
Look in sysfs or procfs, unfortunately this information has a habit of being changed and so cannot be relied on :(