需要从Apache日志中抓取访问者的IP

需要从Apache日志中抓取访问者的IP

我想存储我网站访问者的IP,并且我想使用PHP。我应该使用 cron 吗?或者访客的 IP 将如何自动存储?

答案1

默认情况下,Apache 已记录每个访问者的 IP。您可以通过组合awk以下方式从该文件中获取唯一访问者列表sort

awk '{print $1}' <log_path> | sort -u

/var/log/httpd/access_log其中 是Red Hat 类型系统和/var/log/apache2/access.logUbuntu 类型上的apache 日志的路径。

当然,你不必让它们独一无二,所以sort如果你不想要的话,你可以放弃它。

编辑:

正如 @facundo-victor 指出的,如果您确实想要独特的访问者,我们可以通过awk跟踪我们所看到的内容并仅在第一次打印它们来完成这一切并节省额外的过程,如下所示:

awk '{if (!unique[$1]++) {print $1}}' <log_path>

尽管它们将按照它们首次出现在日志文件中的顺序排列,而不是按 ASCII 排序。

此外,这还假设日志中的第一个字段是 IP 地址,这是许多较新版本的 Apache 的默认值,但不一定是这样。

相关内容