ウェブサイトの訪問者のIPを保存したいのですが、PHPを使用したいと思います。 cronを使用する必要がありますか、それとも訪問者のIPはどのように自動的に保存されますか?
Apacheはデフォルトで各ビジターのIPをすでに記録しています。次のようにawk
とsort
を組み合わせることで、そのファイルからユニークビジターのリストを取得できます。
awk '{print $1}' <log_path> | sort -u
ここで、Apacheログへのパスは/var/log/httpd/access_log
Red Hatタイプのシステムおよび/var/log/Apache2/access.log
Ubuntuタイプ。
もちろん、それらを一意にする必要はないので、必要ない場合はsort
を削除できます。
編集:
@ facundo-victorが一意の訪問者が必要かどうかを指摘したように、awk
を使用してすべてを実行し、表示された内容を追跡し、それらを初めて印刷するだけで追加のプロセスを節約できます。
awk '{if (!unique[$1]++) {print $1}}' <log_path>
ただし、ログファイルに最初に表示される順序であり、ASCIIでソートされていません。
また、これはログの最初のフィールドがIPアドレスであると想定しています。これは、Apacheの多くの新しいバージョンのデフォルトですが、必ずしもそうである必要はありません。