Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Чтение TCP\UDP пакетов налету  (Прочитано 1329 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн evtuhovdo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Чтение TCP\UDP пакетов налету
« : 15 Январь 2012, 20:55:10 »
Есть замечательные устройства GPS с возможностью отправки данных по GPRS.
Например tk-102.
Интересует меня получение пакетов от этой железки с дальнейшим парсингов этим пакетов и занесением нужных данных в DB.
На данный момент допёр только до решения через
tcpdump -i eth1 -v  -w GPS.cap port 20200Пакеты получаю. Но они не записываются в файл на лету, а только после получения определённого объёма пакетов. Это большой минус.
Итого ищу решение для чтения этих нестандартных пакетов и возможности их парсинга налету.
ubuntu server 10.04 lucid

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Чтение TCP\UDP пакетов налету
« Ответ #1 : 16 Январь 2012, 07:20:56 »
libpcap

А так выбрасываешь системник с 10го этажа, ну и пока он летит он получает пакеты на лету, только UPS не забудь к нему привязать еще.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Чтение TCP\UDP пакетов налету
« Ответ #2 : 16 Январь 2012, 19:02:23 »
Ну да, пакеты кешируются в оперативной памяти, а потом записываются на диск. Это нормально.
Почитайте еще мануалы по tcpdump. Может, там есть еще ключик для задания размера кэша?
« Последнее редактирование: 16 Январь 2012, 19:05:43 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн evtuhovdo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Чтение TCP\\\\UDP пакетов налету
« Ответ #3 : 18 Январь 2012, 20:03:18 »
-l Сделать буферизацию построчной.
Это полезно, если вы перенаправляете вывод tcpdump в pipe, например направляете его на вход команде tee или awk.

В итоге решения для записи пакета в файл capture.cap сразу при поступлении имеет такой вид:
tcpdump -i eth1 -v port 20200 -l | tee capture.cap
Пользователь решил продолжить мысль 18 Январь 2012, 20:05:02:
wl, мануалы рулят =)

Пользователь решил продолжить мысль 18 Январь 2012, 20:14:17:
Остался следующий вопрос. Как записать полученную инфу в мускуль. Т.е. как организовать слежение за изменением файла.
Предполагаю что для этих целей будет использоваться
tail -f capture.capпочему то ничего в голову не приходит =(
Думаю это должен быть баш скрипт.
Подсказки из зала?  :)
« Последнее редактирование: 18 Январь 2012, 20:14:17 от evtuhovdo »
ubuntu server 10.04 lucid

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: Чтение TCP\UDP пакетов налету
« Ответ #4 : 19 Январь 2012, 08:10:47 »
В отдельном потоке анализ и запись в БД. В этом случае труднее бороться с размерами файлов.
Лучше делать записи в 2 файла поочередно.
В каждый момент времени в один пишется, другой обрабатывается.

 

Страница сгенерирована за 0.068 секунд. Запросов: 24.