Необходимо получить конкретный блок данных из отчета о сканировании
Я выполнил сканирование nmap в большой сети, и теперь я пытаюсь упорядочить данные.
Отчет, который я имею, является результатом:
nmap -A -p 0-65535 -iL [filename] -oX [filename]
Итак, что я пытаюсь сделать сейчас, это извлечь результаты для каждого IP-адреса, который я сканировал. Я нашел другой пост здесь, где решение было использовать awk:
awk 'BEGIN {RS="< host ";} /^starttime/ {print RS $0;}' [filename]
Это не сработало для меня, потому что вместо остановки после первого блока оно проходило прямо через отчет. Конечно, я понимаю, что это связано с тем, что " Можно ли в любом случае запустить отчет nmap, извлечь отчет о проверке для каждого IP-адреса и сохранить его в отдельном файле? Конечно, для этого потребуется цикл For... после того, как будет извлечено и записано в файл одного блока, его можно расширить с помощью цикла for (я думаю)... Или у кого-то, исходя из опыта или просто вдохновения, есть более изысканное решение / предложение? Любая помощь в этом вопросе будет принята с благодарностью.
1 ответ
Не использовать awk
проанализировать данные XML. Формат вывода Nmap XML хорошо документирован, и для него есть парсеры в Python ( Ndiff также устанавливается как библиотека Python 2 и имеет встроенный парсер), Ruby, Perl, или вы можете использовать несколько парсеров XML командной строки,