Дальше  >

Петрозаводский государственный университет
Математический факультет

Кафедра информатики и математического обеспечения




2.2. Библиотека Рсар.


Библиотека рсар предоставляет удобный для программиста интерфейс с BPF и позволяет, не опускаясь на уровень сетевых устройств, установить фильтрацию пакетов, при помощи набора системных и специализированных функций.

  1. С помощью вызова pcap_compile() библиотеки libpcap можно откомпилировать особый BPF-псевдокод из текстовой строчки, которая может быть, к примеру, сохранена в текстовом файле. В tcpdump это выражение вводится в командной строке ("host 192.168.0.1 proto 6 port 23/xOO").
  2. Структура программ, написанных с помощью этой библиотеки, следующая: Определившись с тем, какое из сетевых устройств собираемся прослушивать (char *dev = pcap_lookupdev()), мы обращаемся к функции библиотеки рсар (pcap_t *pcap_open_live(...)), возвращающей указатель на устройство, который можно будет использовать для переключения между сессиями в случае, когда одновременно идет работа с несколькими точками коммуникации.
  3. В случае если нас интересует определенный трафик (только TCP пакеты или только пакеты, приходящие на порт 23) мы должны создать набор правил (rule set), откомпилировать (compile) их и принять (apply).
  4. В завершении мы даем команду рсар войти в основной цикл выполнения, т.е. дождаться получения указанного количества пакетов, при получении очередного вызывать заранее определенную функцию обработки (возможно, разбивающую пакет на части и выводящую его на экран пользователю, или сохраняющую его в файл ...).
  5. После получения достаточной для итогов информации мы закрываем сессию и на этом работа заканчивается.







Петрозаводск
2004