2017/07/10 12:05 pm
Replacing remote address
Uncategorized, ,

ここのサイトは CloudFlare を通しているのだが、そうするとアクセス解析的なことをする際に $_SERVER["REMOTE_ADDR"] の値が CloudFlare 内のサーバの IP アドレスになってしまい、本来のビジターのそれを得られない。

そういう場合は代わりに $_SERVER["HTTP_CF_CONNECTING_IP"] を参照する。自前で作っている PHP アプリケーションの場合はそれだけの話なのだが、このブログの場合はどうだろうか。このブログは WordPress で運用している。

must-use plugin というものを使う。これは WordPress のメインの処理に先駆けた早い段階で読み込まれる。<blog-root>/wp-content/mu-plugins/ip-override.php 的なファイルを編集し

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
 $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}

てな感じのコードを書いておく。

Archives