LINUX.ORG.RU

Re: Сетевой интерфейс

Парсить ifconfig, который парсит /proc?

stassats ★★★★ ()
Ответ на: Re: Сетевой интерфейс от stassats

Re: Сетевой интерфейс

Подглядывающий за подглядывающим?
Нет, исходники ifconfig  я уже ковырял.
Сами, понимаете, не подходит.

ttnl ★★★★★ ()

Re: Сетевой интерфейс

> Метод парсить /proc/net/dev не катит.

почему?

Legioner ★★★★★ ()
Ответ на: Re: Сетевой интерфейс от Legioner

Re: Сетевой интерфейс

По-моему это кривой способ.
Формат файла может поменяться.
В линуксе все должно быть стабильно.

ttnl ★★★★★ ()
Ответ на: Re: Сетевой интерфейс от stassats

Re: Сетевой интерфейс

Часть.
Но почему я должен пользоваться самописным парсером,
когда должна быть функция, которая делает нужные мне операции?
Почнму каждый должен изобретать велосипед? Я разумею,
что должно быть стандартное решение.

ttnl ★★★★★ ()
Ответ на: Re: Сетевой интерфейс от ttnl

Re: Сетевой интерфейс

Кстати, посмотрел исходники netstat и ifconfig, и мне стало плохо от обилия параметров командной строки. Наверное, так оно и надо писать (потрясает, что функции в три экрана), но выглядит отталкивающе.

ttnl ★★★★★ ()
Ответ на: Re: Сетевой интерфейс от ttnl

Re: Сетевой интерфейс

Вообще то в линуксе обычно так и делается взаимодействие с ядром - через файлы псевдоФС. Может конечно и есть какая функция..

Legioner ★★★★★ ()

Re: Сетевой интерфейс

ioctl есть, типа SIOCGIFFLAGS

dilmah ★★★★★ ()
Ответ на: Re: Сетевой интерфейс от ttnl

Re: Сетевой интерфейс

>ioctl есть, типа SIOCGIFFLAGS

По-моему, через ioctl нельзя узнать статистику по интерфейсу. Во всяком случае pppd использует ioctl SIOCGPPPSTATS.

>В линуксе все должно быть стабильно.

ИМХО, в чтении /proc ничего плохого нет, команда ps так и делает. И нету в Линуксе ничего стабильного. Возьмите различные системные утилиты 1995 года и попробуте заставить их работать на современном ядре...

Ну если не нравится читать /proc, то можно посмотреть исходники команды ip (пакет iproute2), она работает с ядром через NETLINK-сокет и получает от ядра структуры в двоичном виде.

mky ★★★★★ ()

Re: Сетевой интерфейс

Честно признатся не знаю как в Linux'е, но для OpenBSD это легко достигается через ioctl, SIOCGIFDATA

простой рабочий пример: http://www.vhost.dyndns.org/cgi-bin/cvsweb/src/netmet2/

ЗЫ: сорри за саморекламу

beastie ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.