2009-09-29 58 views
1

在红宝石1.8.5中,我如何检查在linux下是否存在一个像eth0或wan0这样的命名网络接口?即使检查存在将是一个开始。我知道我可以封装一个shell命令来使用ifconfig或somesuch,但宁愿有一个纯粹的ruby解决方案。在Ruby on Linux中,如何检查命名网络接口(如eth0)的存在?

措辞问题的另一种方法可能是“如果我在ruby中实现ifconfig,我会使用哪个API?”

回答

4

我想你应该看看sysfs树,特别是在/sys/class/net/

+0

谢谢你,这两者并在/ proc /网/ dev的建议看起来很好。你碰巧知道哪些/ proc和/ sys在未来的内核中不太可能改变? – kdt 2009-09-29 14:36:59

+0

我认为/ sys是更好的选择(很明显),/ proc下的很多东西(或者全部,我不太确定)已被弃用。 – unwind 2009-09-29 14:40:59

+0

我不认为/ sys将在未来的内核版本中发生变化;它是2.6中引入的设计的一部分,是“正确的路要走” – MarkR 2009-10-01 06:35:23

1

ifconfig打开/proc/net/dev并从那里读取接口。

相关问题