Apache 로그에서 방문자의 IP를 가져와야 합니다.

Apache 로그에서 방문자의 IP를 가져와야 합니다.

내 웹사이트 방문자의 IP를 저장하고 싶고 PHP를 사용하고 싶습니다. 크론을 사용해야 하나요? 아니면 방문자의 IP가 어떻게 자동으로 저장되나요?

답변1

기본적으로 Apache는 각 방문자의 IP를 기록합니다. 다음을 결합하여 awk이 파일에서 고유 방문자 목록을 얻을 수 있습니다 sort.

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

/var/log/httpd/access_log/var/log/apache2/access.logRed Hat 유형 시스템 및 Ubuntu 유형의 Apache 로그 경로는 어디에 있습니까 ?

물론 고유하게 만들 필요는 없으므로 sort원하지 않으면 삭제하면 됩니다.

편집하다:

@facundo-victor가 지적했듯이, 정말로 고유한 방문자를 원한다면 awk다음과 같이 우리가 보는 것을 추적하고 처음에만 인쇄함으로써 모든 작업을 수행하고 추가 프로세스를 절약할 수 있습니다.

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

ASCII 순서가 아닌 로그 파일에 처음 나타나는 순서대로 정렬됩니다.

또한 이는 로그의 첫 번째 필드가 많은 최신 버전의 Apache에서 기본값인 IP 주소라고 가정하지만 반드시 그런 것은 아닙니다.

관련 정보