Replacing remote address

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

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

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

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

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

Leave a Reply

Your email address will not be published.