gpt4 book ai didi

awk - 从实时 tcpdump 捕获中提取唯一 IP

转载 作者:行者123 更新时间:2023-12-04 18:36:26 25 4
gpt4 key购买 nike

我正在使用以下命令从实时 tcpdump 捕获中输出 IP

sudo tcpdump -nn -q ip -l | awk '{print $3; fflush(stdout)}' >> ips.txt

我得到以下输出
192.168.0.100.50771
192.168.0.100.50770
192.168.0.100.50759

需要两件事:
  • 仅提取 IP,而不提取端口。
  • 生成一个具有唯一 IP 的文件,没有重复,并在可能的情况下进行排序。

  • 先感谢您

    最佳答案

    要从 tcpdump 中提取唯一的 IP,您可以使用:

    awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+).*/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }' YOURFILE

    因此,您查看实时唯一 IP 的命令是:
    sudo tcpdump -nn -q ip -l | awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+)(.*)/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }'

    这将在每个 IP 出现后立即将其打印到输出,因此它无法对它们进行排序。如果要对它们进行排序,可以将输出保存到文件中,然后使用 sort工具:
    sudo tcpdump -nn -q ip -l | awk '{ ip = gensub(/([0-9]+.[0-9]+.[0-9]+.[0-9]+)(.*)/,"\\1","g",$3); if(!d[ip]) { print ip; d[ip]=1; fflush(stdout) } }' > IPFILE
    sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 IPFILE

    示例输出:
    34.216.156.21
    95.46.98.113
    117.18.237.29
    151.101.65.69
    192.168.1.101
    192.168.1.102
    193.239.68.8
    193.239.71.100
    202.96.134.133

    注意:确保您使用的是gawk。它不适用于 mawk。

    关于awk - 从实时 tcpdump 捕获中提取唯一 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826395/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com