统计 IP 访问次数通常取决于数据来源和使用场景。下面按常见情况给你几种实用方法:
假设日志格式中有客户端 IP(如 Nginx 默认:
$remote_addr - $remote_user [$time_local] "$request"
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
grep "192.168.1.100" access.log | wc -l
grep "192.168.1.100" access.log | awk '{print $4}' | cut -d: -f2 | sort | uniq -c
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" file.txt | sort | uniq -c | sort -nr
如果访问记录存数据库:
SELECT ip, COUNT(*) AS cnt
FROM access_log
GROUP BY ip
ORDER BY cnt DESC
LIMIT 10;
from collections import Counter
with open("access.log") as f:
ips = [line.split()[0] for line in f]
counter = Counter(ips)
print(counter.most_common(10))
INCR ip:192.168.1.1X-Forwarded-Forawk 或离线分析,避免卡顿如果你能告诉我:
我可以给你更精准的方案。