LINUX.ORG.RU

Помогите с РРР и подсчётом трафика


0

0

Есть такая проблема: OS ASPlinux 10 text mode Есть 10 компов, которые соединяються с другим компом по РРР протоколу к другому компу. Проблема заключаеться в том, как подсчитать исходящий и входящий трафик для каждого пользователя и записать значения в файл.

БУду признателен за оказанное содействие. Можно ссылками. Но большая просьба промолчать если не знаешь.

anonymous

Начни с opennet.ru. Ключевые слова - traffic, counter. Будет мало - ищи гуглем.

Если ты думаешь, что ты первый, то ты сильно ошибаешься.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Я нашёл только как организовать соединение по РРР с помошью рррd демона. Но везде очень не точно и мягко говоря странно описано как считать трафик по соединениям.

anonymous
()
Ответ на: комментарий от AngryElf

И вообще если можно то конкретные решения, а то послать искать каждый может. Нашёл бы - не просил бы помощи.

anonymous
()
Ответ на: комментарий от anonymous

Конкретные решения есть под конкретную задачу, которая в вопросе не озвучена. Абстрактное решение - гугль на эту тему.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Задача: необходимо подсчитать исходяший и входящий трафик для каждой машины, соединённой с главной по РРР протоколу. Это всё происходит на главной машине. Значения записать в файл.

Теперь задача конкретно поставлена?

anonymous
()
Ответ на: комментарий от anonymous

Да море ссылок этих... Вот еще глянь - http://www.opennet.ru/search.shtml?method=and&format=builtin-long&con...

В самом простом случае достаточно снимать статистику iptables'ом. Типа, делаешь правило, в которое попадает твой траффик и периодически снимаешь стату (man iptables).

Если у тебя одна машина, мудрить с серьезными трафометрами не стоит.

Да, кстати... Всякие kppp разве статистику соединения не показывают?

И в логах, у меня, по крайней мере, после разрыва соединения пишет время сессии и объем переданных данных.

Информаци для анализа море, надо просто глаза открыть.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Чуть усложнилась задача, данные необходимо передать другой программе, трафик считать в реальном времени.

anonymous
()
Ответ на: комментарий от AngryElf

И вообще, очень бы хотелось пообщаться в ICQ с кем-то, кто нормально разбираеться в Linux и в сетях. мой номер: 257307782

anonymous
()
Ответ на: комментарий от AngryElf

Собсно спрашивал знающих, а не отправляющих куда подальше.... Тыкни пальцем в то что мне необходимо...

anonymous
()
Ответ на: комментарий от AngryElf

P.S. Знающие, поддержите меня! :-) P.P.S. Я-то тоже знающий, но сам себя поддерживать как-то не так...

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

опять отправили... Билинги в основном комерческие... А даже если это оупен сорс то там никто не скажет как это осуществить. Кстати, уточню, это РРРоЕ соединение должно быть =))

anonymous
()
Ответ на: комментарий от anonymous

> Билинги в основном комерческие...

Биллинги в-основном каждый садм пишет сам себе по-ходу работы.

> Кстати, уточню, это РРРоЕ соединение должно быть

Могу показаться неоригинальным но если ты не понимаешь WDFI "соединение" и при этом абсолютно не собираешься учится - не берись за такие задачи.

А ткнуть носом тебя можно только на скорости ~70 km/h в стену

anonymous
()

grep ppp < /proc/net/dev | awk '{print $1, "rx="$2, "tx="$10}'

nobody ★★
()
Ответ на: комментарий от anonymous

> А по русски можно ? ;)

А что именно непонятно?

Если смущает английский язык man-страницы, то translate.ru в помощь, я
не переводчик.

А если непонятно, что делает команда

grep ppp < /proc/net/dev | awk '{print $1, "rx="$2, "tx="$10}'

так запусти ее на той машине, где у тебя куча ppp-интерфейсов, и сразу
все поймешь. Тебе вывалится статистика по каждому интерфейсу:
количество принятых и переданных байт. Кстати, работает она на 2.4,
насчет 2.6 не знаю.

Вот еще что можно сделать на 2.4 (про 2.6 тоже не знаю):

------------------------

#include <stdio.h>
#include <net/if_ppp.h>
#include <sys/ioctl.h>

#define IFACE "ppp0"

int main()
  {
  int soc;
  struct ifpppstatsreq req;

  soc = socket(AF_INET, SOCK_DGRAM, 0);
  strcpy(req.b.ifr_ifrn.ifrn_name, IFACE);
  req.b.ifr_ifru.ifru_data = (char *)&req.stats;

  ioctl(soc, SIOCGPPPSTATS, &req);
  /* req.stats.p.ppp_ibytes = количество принятых байт */
  /* req.stats.p.ppp_obytes = количество посланных байт */

  printf("%s: rx=%u tx=%u\n", IFACE, req.stats.p.ppp_ibytes, req.stats.p.ppp_obytes);
  return 0;
  }

------------------------

Выдаст то же самое, что и вышеприведенная команда, только для одного
интерфейса: ppp0.

nobody ★★
()
Ответ на: комментарий от anonymous

> аХКХМЦХ Б НЯМНБМНЛ ЙНЛЕПВЕЯЙХЕ...
аХККХМЦХ Б-НЯМНБМНЛ ЙЮФДШИ ЯЮДЛ ОХЬЕР ЯЮЛ ЯЕАЕ ОН-УНДС ПЮАНРШ.

> йЯРЮРХ, СРНВМЧ, ЩРН пппНе ЯНЕДХМЕМХЕ ДНКФМН АШРЭ

лНЦС ОНЙЮГЮРЭЯЪ МЕНПХЦХМЮКЭМШЛ МН ЕЯКХ РШ МЕ ОНМХЛЮЕЬЭ WDFI "ЯНЕДХМЕМХЕ" Х ОПХ ЩРНЛ ЮАЯНКЧРМН МЕ ЯНАХПЮЕЬЭЯЪ СВХРЯЪ - МЕ АЕПХЯЭ ГЮ РЮЙХЕ ГЮДЮВХ.

ю РЙМСРЭ МНЯНЛ РЕАЪ ЛНФМН РНКЭЙН МЮ ЯЙНПНЯРХ ~70 km/h Б ЯРЕМС



ъ СВСЯЭ, ЙРН ЯЙЮГЮК ВРН Ъ МЕ ЯНАХПЮЧЯЭ ? оПНЯРН ОНОПНЯХК ОНЛНЫХ. еЯРЭ ЙНМЙПЕРМЮЪ ОПНАКЕЛЮ, МН ОНЙЮ МЕРС Е╦ ПЕЬЕМХЪ.

мЮЬ╦К пппНе ЯЕПБЕП, МЮЬ╦К ЛЮММ Й МЕЛС, ОНВХРЮК. рЕОЕПЭ МСФМН РПЮТХЙ ОН ╡п ЯВХРЮРЭ, РЮЙ ЙЮЙ пппНе МЕ РПЕАСЕР TCP/IP Х БШДЮ╦Р ОПХ ЯНЕДХМЕМХХ ЙЮФДНЛС шп, ЙНРНПНЕ ОПНОХЯШБЮЕРЭЯЪ Б ТЮИКЕ.

лКХМ, ОНВРХ АХККХМЦ ОНКСВЮЕРЭЯЪ.

anonymous
()
Ответ на: комментарий от anonymous

яНППХ, ЙНДХПНБНВЙЮ МЕ РЮ :-)

> аХКХМЦХ Б НЯМНБМНЛ ЙНЛЕПВЕЯЙХЕ...
аХККХМЦХ Б-НЯМНБМНЛ ЙЮФДШИ ЯЮДЛ ОХЬЕР ЯЮЛ ЯЕАЕ ОН-УНДС ПЮАНРШ.

> йЯРЮРХ, СРНВМЧ, ЩРН пппНе ЯНЕДХМЕМХЕ ДНКФМН АШРЭ

лНЦС ОНЙЮГЮРЭЯЪ МЕНПХЦХМЮКЭМШЛ МН ЕЯКХ РШ МЕ ОНМХЛЮЕЬЭ WDFI "ЯНЕДХМЕМХЕ" Х ОПХ ЩРНЛ ЮАЯНКЧРМН МЕ ЯНАХПЮЕЬЭЯЪ СВХРЯЪ - МЕ АЕПХЯЭ ГЮ РЮЙХЕ ГЮДЮВХ.

ю РЙМСРЭ МНЯНЛ РЕАЪ ЛНФМН РНКЭЙН МЮ ЯЙНПНЯРХ ~70 km/h Б ЯРЕМС



ъ СВСЯЭ, ЙРН ЯЙЮГЮК ВРН Ъ МЕ ЯНАХПЮЧЯЭ ? оПНЯРН ОНОПНЯХК ОНЛНЫХ. еЯРЭ ЙНМЙПЕРМЮЪ ОПНАКЕЛЮ, МН ОНЙЮ МЕРС Е╦ ПЕЬЕМХЪ.

мЮЬ╦К пппНе ЯЕПБЕП, МЮЬ╦К ЛЮММ Й МЕЛС, ОНВХРЮК. рЕОЕПЭ МСФМН РПЮТХЙ ОН ╡п ЯВХРЮРЭ, РЮЙ ЙЮЙ пппНе МЕ РПЕАСЕР TCP/IP Х БШДЮ╦Р ОПХ ЯНЕДХМЕМХХ ЙЮФДНЛС шп, ЙНРНПНЕ ОПНОХЯШБЮЕРЭЯЪ Б ТЮИКЕ.

лКХМ, ОНВРХ АХККХМЦ ОНКСВЮЕРЭЯЪ.

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