Запускаете sn, логи или в файл перенапрвляете и потом декодируете с помощью log_analiser'а или сразу через пайп перенаправляете в него... Дальше описание для log_analiser'a Формат лога log_analiser'а: Переменные пишутся так ~TIME~, все проганяется через printf поэтому надо писать %s~TIME~... для отчета можно использовать следующие переменные: Например : log_analiser -f '%s~ETH_DADDR~ -> %s~ETH_SADDR~\n' дудет выводить только MAC получателя и MAC отправителя.... TIME - время в формате : 21:00:23 TIME_TUNE - время в формате : 21:00:23.89283928 RAW_TIME - время в формате : 236478263.874798 DATE - дата в формате : Tue Jun 5 00:29:54 2001 NUM - номер пакета DATA_LENGTH - длина необработанного пакета DATA - необработанный пакет DATA_HEX - необработанный пакет в hex виде DEV - имя сетевого устройства ETH_DADDR - MAC адрес сетевой карточки получателя ETH_SADDR - MAC адрес сетевой карточки отправителя ETH_PROTO - Ethernet протокол (0800 - IP и тд.) ETH_DATA - Необработанные данные Ethernet пакета ETH_DATA_HEX - Необработанные данные Ethernet пакета в hex виде IP_VERSION - Версия IP протокола IP_TOS - IP_TOT_LEN - Длина пакета IP_ID - Идентифер IP_FLAG - Флаги IP пакета, в формате числа IP_FLAG_NAME - Флаги IP пакета, в формате: ACK,PUSH и тд IP_TTL - Время жизни пакета IP_PROTO - Протокол инкапсулированный в IP (цифра) IP_CRC - Контрольная сумма IP_SADDR - IP адрес отправителя вида : 192.179.1.1 IP_DADDR - IP адрес получателя вида : 192.179.1.1 IP_IHL - IP_FRAG_OFF - IP_OPTIONS - Опции IP если есть IP_PROTO_NAME - Протокол инкапсулированный в IP (имя) IP_DATA - Необработанные данные IP пакета IP_DATA_HEX - Необработанные данные IP пакета в hex виде TCP_SPORT - TCP порт отправителя TCP_DPORT - TCP порт получателя TCP_SEQ - ну и тд... TCP_ACK TCP_DOFFS TCP_FLAG TCP_WIN TCP_CRC TCP_POINT TCP_DATA TCP_DATA_HEX UDP_SPORT UDP_DPORT UDP_LEN UDP_CRC UDP_DATA UDP_DATA_HEX ICMP_TYPE ICMP_CODE ICMP_CRC ICMP_ID ICMP_SEQ ICMP_DATA ICMP_DATA_HEX Со всеми этими переменными можно пользовать [\d+,*\d*] те например TCP_DATA[0,3] сделает substr(TCP_DATA,0,3) Опции командной строки: -df - не меньше даты ( напр -df '21.11.2000 21:12:12') -dl - не больше даты ( напр -df '21.11 21:12:12') -ff - файл с описанием формата отчета -f - формат отчета -l - считать входящие данные из файла -l -num - номера пакетов -eth - опции eth (напр -eth 'ETH_PROTO=0x0800') -p - опции протокола (напр -ip 'IP_SADDR=192.168.1.1&IP_PROTO_NAME=tcp,udp') -s_p - опци субпротокола (udp,tcp,icmp) (напр -s_p 'TCP_WIN=3000 - &TCP_SPORT=12,45,6000-1200') Примеры командной строки: ./sn -i eth0 | ./log_analiser -p 'IP_TOT_LEN=0-100&IP_SADDR=:r:192\.168\.1\..*' -s_p 'TCP_DPORT | TCP_SPORT=21' -f '%s~TCP_DATA[0,50]~\n---\n' - выведет первые 50 байт данных из пакетов длиной от 0 до 100 байт пришедших на порт 21 или с порта 21 машин из сети 192.168.1.* в интерактивном режиме. --- ./sn -i eth0 > eth0.dmp ./log_analiser -l eth0.dmp -p 'IP_TOT_LEN=0-100&IP_SADDR=:r:192\.168\.1\..*' -s_p 'TCP_DPORT | TCP_SPORT=21' -f '%s~TCP_DATA[0,50]~\n---\n' - тоже самое только из предварительно сахраненного дампа. --- ./log_analiser -l eth0.dmp -df '21:34:55' - вывести информацию о пакетах пришедших в _ТЕКУЩЕМ_ месяце _ТЕКУЩЕГО_ числа _ТЕКУЩЕГО_ года не раньше чем в 21:34:55 --- ./log_analiser -l eth0.dmp -df '21-10-2001 21:34:55' - вывести информацию о пакетах пришедших не раньше чем 21 _НОЯБРЯ_ 2001 года в 21:34:55 --- ./log_analiser -l eth0.dmp -df '21-10-2001 21:34:55' - вывести информацию о пакетах пришедших не раньше чем 21 _НОЯБРЯ_ 2001 года 21:34:55