У меня есть несколько файлов журнала, которые содержат несколько IP-адресов. Я хотел бы иметь возможность передавать данные через программу, которая будет сопоставлять и разрешать IP-адреса.
IE cat / var / log / somelogfile | хозяин
что бы повернуть линию как
10:45 доступно 10.13.13.10
в
10:45 доступ к myhostname.intranet
Я думаю, что может быть способ сделать это с помощью комбинации sed и host, но я понятия не имею, как это сделать. Я знаю, что мог бы написать простой скрипт, который бы это делал, но я бы предпочел использовать встроенные инструменты, если это возможно. Какие-либо предложения?
command-line
sed
pipe
hostname
Даниил
источник
источник
Ответы:
Вот быстрое и грязное решение этого в Python. Он выполняет кэширование (включая отрицательное кэширование), но не использует многопоточность и не является самой быстрой вещью, которую вы видели. Если вы сохраните его как-то так
rdns
, вы можете назвать его так:Его запуск аннотирует IP-адреса с их записями PTR:
И вот источник:
Обратите внимание: это не совсем то, что вы ищете после письма (используя «стандартные инструменты»). Но это, вероятно, поможет вам больше, чем взлом, который разрешает каждый IP-адрес каждый раз, когда он встречается. Имея еще несколько строк, вы даже можете сделать так, чтобы он постоянно кэшировал свои результаты, что поможет при повторных вызовах.
источник
Я бы использовал
jdresolve -n -a
Пакет для Debian и т. Д. Также доступен по адресу:
https://github.com/jdrowell/jdresolve
Я использую его более десяти лет для разрешения логов apache, логов squid и всего остального с большим количеством IP-адресов, которые необходимо разрешить. Он работает хорошо, надежно и быстро, и может кэшировать результаты поиска из предыдущих запусков.
источник
bash-скрипт, в который вы можете добавить свой лог-файл
вывод выглядит так:
источник
Быстрый Perl один:
источник
Если формат журнала постоянно отображается так же, как показано выше, вы можете сделать это действительно грязно с
echo 10:45 accessed by 10.13.13.10|awk '{print $4}'|nslookup
источник