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