O Apache já registra o IP de cada visitante por padrão. Você pode obter a lista de visitantes únicos desse arquivo já combinando awk
e sort
como:
awk '{print $1}' <log_path> | sort -u
onde é o caminho para o log do apache que é /var/log/httpd/access_log
nos sistemas de tipo Red Hat e /var/log/apache2/access.log
nos tipos do Ubuntu.
É claro que você não precisa obtê-los exclusivos, então você pode descartar o sort
se não quiser isso.
Editar:
Como @ facundo-victor apontou se você deseja visitantes únicos, podemos fazer tudo com awk
e salvar o processo extra, mantendo o controle do que vimos e imprimindo-os apenas da primeira vez assim:
awk '{if (!unique[$1]++) {print $1}}' <log_path>
embora eles estejam na ordem em que aparecem pela primeira vez no arquivo de log, não classificados como ascii.
Além disso, isso pressupõe que o primeiro campo no log seja o endereço IP, que é o padrão para muitas versões mais recentes do Apache, mas não precisa ser verdadeiro.