ifconfig
имеет два режима вывода - режим по умолчанию, в котором он дает ОЧЕНЬ больше выхода, и режим короткого -s
, в котором он дает меньше (или, скорее, выбирает разные биты информации из того, что вы ' мне нравится). Так что если взять ifconfig в режиме по умолчанию и выбрать нужную информацию в скрипте (python, perl, ruby, awk, bash + sed + ..., что угодно, что плавает в вашей лодке ;-). Например, с Python:
import re
import subprocess
ifc = subprocess.Popen('ifconfig', stdout=subprocess.PIPE)
res = []
for x in ifc.stdout:
if not x.strip():
print ' '.join(res)
del res[:]
elif not res:
res.append(re.match(r'\w+', x).group())
else:
mo = re.match(r'\s+inet addr:(\S+).*Mask:(\S+)', x)
if mo:
res.extend(mo.groups())
elif re.match(r'\sUP\s', x):
res.append('up')
elif re.match(r'\sDOWN\s', x):
res.append('down')
if res: print ' '.join(res)
и вывод должен быть по вашему желанию (я надеюсь, что легко перевести на любой другой язык, который я упомянул).