如何在 shell 中的 nginx access.log 上获取唯一的 IPv4 和 IPv6 访问者计数?

如何在 shell 中的 nginx access.log 上获取唯一的 IPv4 和 IPv6 访问者计数?

如何通过使用 UNIX CLI 查看 nginx access.log 来获取有关唯一 IPv4 和 IPv6 访问者的一些统计信息?

我使用标准combined预定义格式access_log

答案1

要获取过去两天内唯一 IPv4 和 IPv6 访问者数量的摘要:

grep "1[89]/Feb/" /var/www/logs/mdoc.su/mdoc.su.access.log | \
cut -d " " -f1 | sort | uniq | sed "s#.*\..*#.#g;s#.*:.*#:#g" | \
sort | uniq -c ; echo ipv4 and ipv6 unique hosts, summary ; date

要获取过去两天内唯一访客的唯一 IPv4/24 和 IPv6/48 子网数量的摘要:

grep "1[89]/Feb/" /var/www/logs/mdoc.su/mdoc.su.access.log | \
cut -d " " -f1 | sort | uniq | sed -E "s#^(([0-9a-f]+[.:]){3}).*#\1#g" | \
uniq | sed "s#.*\..*#.#g;s#.*:.*#:#g" | sort | uniq -c ; \
echo ipv4 and ipv6 unique IPv4/24 and IPv6/48 subnets, summary ; date

要查看过去两天内唯一访客最热门的 IPv4 和 IPv6 子网:

grep "1[89]/Feb/" /var/www/logs/mdoc.su/mdoc.su.access.log | \
cut -d " " -f1 | sort | uniq | sed -E "s#^(([0-9a-f]+[.:]){3}).*#\1#g" | \
uniq -c | sort -rn | head -16 ; \
echo ipv4 and ipv6 unique IPv4/24 and IPv6/48 nets, most popular nets ; date

相关内容