Назад | Перейти на главную страницу

Как извлечь IP-адреса из журнала?

Хочу собрать информацию из сервиса UFW для дальнейшего анализа.

Типичная запись журнала UFW выглядит следующим образом:

[UFW BLOCK] IN = eth0 OUT = MAC = 99: 99: 99: 99: 99: 99: 99: XX: XX: XX: XX: 99: 99: 99 SRC = 99.999.999.999 DST = 999.99.99.9 LEN = 40 TOS = 0x00 PREC = 0x00 TTL = 243 ID = 54321 PROTO = TCP SPT = 56338 DPT = 5800 WINDOW = 65535 RES = 0x00 SYN URGP = 0

Как я могу извлечь из журнала IP-адреса SRC и DST?

Спасибо!

Следующего должно быть достаточно. Обратите внимание, что я использовал расширенные регулярные выражения, что делает вещи более читаемыми. Чтобы понять это, вам нужно узнать о регулярных выражениях, а также о sed.

sed -rn -e 's,.* SRC=([0-9.]+) DST=([0-9.]+) .*,\1 \2,p'

Вы также можете сделать это с помощью grep. Опять же, я буду использовать расширенные регулярные выражения, которые должны быть «предпочтительным» типом по сравнению со старыми «базовыми» регулярными выражениями. Здесь я использую -o чтобы grep выводил только ту часть, которая соответствует.

grep -Eo 'SRC=[0-9.]+ DST=[0-9.]+'

Вы можете улучшить это, потребовав границу слова перед SRC; Я думаю ты можешь поставить \b перед SRC для этого, но обычно в этом нет необходимости.

Ура, Кэмерон