読者です 読者をやめる 読者になる 読者になる

さまよえる、Android

Androidのプログラミングで便利なことや残しておきたいことを残しておく。もしオススメのライブラリがあったら教えてくださいね。

Herokuでアクセス制御を実装する(PHP)

heroku php

IP取得

HerokuのPHPからIPを取得するには、$_SERVER["REMOTE_ADDR"]ではなく、$_SERVER['HTTP_X_FORWARDED_FOR']を利用する。Herokuのシステムはクライアントとサーバーの間に、ロードバランサーという負荷分散システムの仕組みが導入されているらしく、$_SERVER["REMOTE_ADDR"]には、ロードバランサーのIPが代入されている。

<?php
$ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'] ;

echo $ipAddress . "<br>";
echo gethostbyaddr($ipAddress);
?>

.htaccess

SetEnvIf X-Forwarded-For 124.***.***.*** denyIp1
SetEnvIf X-Forwarded-For 124.***.***.*** denyIp2

order allow,deny
allow from all
deny  from env=denyIp1
deny  from env=denyIp2