На входе ожидает текстовый дамп в виде
2023-11-23 09:00:05.121 ADD 6 abonent1-IP:50036 -> destination1-IP:443 my-NAT1-IP:39553 -> destination1-IP:443
2023-11-23 09:00:05.134 DELETE 6 abonent2-IP:48876 -> destination2-IP:443 my-NAT2-IP:48876 -> destination2-IP:443
Ищет по задаваемому дате/времени и дополнительным условиям (адрес NAT'а, dst-адреса, порты) соответствующие NAT-сессии, открывшиеся ДО заданного времени и закрывшиеся ПОСЛЕ. Иначе говоря, выдает ответ на традиционный вопрос "кто ходил с IP NAT'а в такое-то время на сайт vk.com?"
Скрипт search-task.pl хочет читать файл tasks.txt, в котором описаны требуемые точки времени и исходные файлы, которые надо парсить. Дополнительно можно дописать адреса, куда ходил абонент, после комментария "допусловия" в строке 59. Сейчас там вбиты адреса ok.ru.
Формат tasks.txt:
5 3 24 2 19 13 57 33 NAT1-IP
6 6 24 3 20 16 5 43 NAT2-IP
- Первое число - номер задачи, с этим числом будет сформирован файл 'result#.txt', где # - этот номер.
- Второе число - номер исходного файла - по умолчанию скрипт ищет в текущем каталоге файл с именем 'search#', где # - этот номер.
- Третье число - последние две цифры года
- Четвертое число - месяц
- Пятое число - день
- Шестое число - час
- Седьмое число - минута
- Восьмое число - секунда
- Девятое значение - внешний IP NAT'а
Пример tasks.txt выше ищет сначала в файле search3 запись о выходе в интернет абонента с внешним адресом NAT1-IP 19 февраля 2023 года в 13:57:33 и пишет найденное в файл result5.txt. Потом - в файле search6 ищется запись о выходе в интернет абонента с внешним адресом NAT2-IP 20 марта 2024 года в 16:05:43 и пишется найденное в файл result6.txt.
Памяти при работе скрипт кушает в полтора раза больше, чем размер search-файла - если файл 2Гб, то памяти будет съедено 3Гб.
Весь этот ужас родился по причине получения от местного угрозыска запроса с 250 (двухсот пятидесятью) записями о похождениях абонента ))