如何从日志中提取 IP 地址?

如何从日志中提取 IP 地址?

我想从 UFW 服务收集信息,以便进一步分析。

典型的 UFW 日志条目如下所示:

[UFW BLOCK] IN=eth0 OUT= MAC=99: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

如何从日志中提取 SRC 和 DST IP 地址?

谢谢你!

答案1

以下内容应该足够了。请注意,我使用了扩展正则表达式,这使内容更具可读性。要真正理解这一点,您需要了解正则表达式以及 sed。

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

您也可以使用 grep 执行此操作。同样,我将使用扩展正则表达式,它是比旧的“基本”正则表达式更受欢迎的类型。在这里,我使用-ogrep 仅打印出匹配的部分。

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

您可以对此进行改进,要求在 SRC 之前有一个单词边界;我认为您可以\b在之前放置一个SRC来实现这一点,但通常没有必要。

干杯,卡梅伦

相关内容