获取所有活动网络接口列表的便携式方法

Mal*_*lds 4 networking ifconfig

我想获取所有活动网络接口的列表(例如 eth0、wlan0)。我假设我必须解析ifconfig的输出,但不同操作系统的格式不同。有没有人有一种可移植的方式来获取这些信息,以便它可以在大多数 unices(linux、*bsd、mac)上使用。

EEA*_*EAA 7

查看因子包。它主要由 puppet 配置管理程序用于从已安装的机器中获取元数据,但它也可以出于类似目的以独立方式运行。它的输出确实包括有关在机器上找到的网络接口的信息,并且其格式将跨平台保持一致。

示例输出:

user@host:~$ facter
architecture => i386
domain => members.linode.com
facterversion => 1.3.8
fqdn => host.members.linode.com
hardwareisa => unknown
hardwaremodel => i686
hostname => host 
id => user 
ipaddress => 1.2.3.4 
ipaddress_eth0 => 1.2.3.4 
kernel => Linux
kernelrelease => 2.6.32.16-linode28
lsbdistcodename => hardy
lsbdistdescription => Ubuntu 8.04.4 LTS
lsbdistid => Ubuntu
lsbdistrelease => 8.04
macaddress => 76:c9:3e:0b:xx:xx
macaddress_eth0 => fe:fd:43:12:xx:xx
memoryfree => 393.08 MB
memorysize => 498.68 MB
operatingsystem => Debian
operatingsystemrelease => 2.6.32.16-linode28
processor0 => Intel(R) Xeon(R) CPU           L5335  @ 2.00GHz
processor1 => Intel(R) Xeon(R) CPU           L5335  @ 2.00GHz
processor2 => Intel(R) Xeon(R) CPU           L5335  @ 2.00GHz
processor3 => Intel(R) Xeon(R) CPU           L5335  @ 2.00GHz
processorcount => 4
ps => ps -ef
rubysitedir => /usr/local/lib/site_ruby/1.8
rubyversion => 1.8.6
swapfree => 186.84 MB
swapsize => 255.99 MB
uniqueid => 007f0101
Run Code Online (Sandbox Code Playgroud)