新着記事
« トラックバックセンター ブログランキング | サーバー構築からDVDまで | トラックバックセンター イメージ »
PHPでIPアドレス、ホスト名を取得する方法をメモしておきます。 また、プロクシ経由か判別する簡単な関数を作成してみました。
プロクシ経由であれば、それらしい環境変数の値を返す。プロクシ経由でない場合はFALSEを返す。
function checkProxy(){ /* * 環境変数からプロクシかどうかを判断します * プロクシ特有の環境変数が取得できるとその環境変数を返します * 戻り値 * 取得された環境変数/FALSE */ if (null != ($proxy = getenv("HTTP_VIA"))) return $proxy; if (null != ($proxy = getenv("HTTP_FROM"))) return $proxy; if (null != ($proxy = getenv("HTTP_SP_HOST"))) return $proxy; if (null != ($proxy = getenv("HTTP_CLIENT_IP"))) return $proxy; if (null != ($proxy = getenv("HTTP_FORWARDED"))) return $proxy; if (null != ($proxy = getenv("HTTP_X_LOCKING"))) return $proxy; if (null != ($proxy = getenv("HTTP_XONNECTION"))) return $proxy; if (null != ($proxy = getenv("HTTP_CACHE_INFO"))) return $proxy; if ("no-cache" != ($proxy = getenv("HTTP_CACHE_CONTROL")) && $proxy != null) return $proxy; if (null != ($proxy = getenv("HTTP_X_FORWARDED_FOR"))) return $proxy; if (null != ($proxy = getenv("HTTP_PROXY_CONNECTION"))) return $proxy; return FALSE; }
2年ぐらい前に作成したものなので、ちゃんと動くか確認して、必要なところを改良して使ってみてください。
この記事はご希望通りの内容でしたか?
PHPでIPアドレス、ホスト名を取得する方法をメモしておきます。
また、プロクシ経由か判別する簡単な関数を作成してみました。
$ip = getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
if ($host == null || $host == $ip)
$host = gethostbyaddr($ip);
プロクシ経由であれば、それらしい環境変数の値を返す。プロクシ経由でない場合はFALSEを返す。
function checkProxy(){
/*
* 環境変数からプロクシかどうかを判断します
* プロクシ特有の環境変数が取得できるとその環境変数を返します
* 戻り値
* 取得された環境変数/FALSE
*/
if (null != ($proxy = getenv("HTTP_VIA")))
return $proxy;
if (null != ($proxy = getenv("HTTP_FROM")))
return $proxy;
if (null != ($proxy = getenv("HTTP_SP_HOST")))
return $proxy;
if (null != ($proxy = getenv("HTTP_CLIENT_IP")))
return $proxy;
if (null != ($proxy = getenv("HTTP_FORWARDED")))
return $proxy;
if (null != ($proxy = getenv("HTTP_X_LOCKING")))
return $proxy;
if (null != ($proxy = getenv("HTTP_XONNECTION")))
return $proxy;
if (null != ($proxy = getenv("HTTP_CACHE_INFO")))
return $proxy;
if ("no-cache" != ($proxy = getenv("HTTP_CACHE_CONTROL")) && $proxy != null)
return $proxy;
if (null != ($proxy = getenv("HTTP_X_FORWARDED_FOR")))
return $proxy;
if (null != ($proxy = getenv("HTTP_PROXY_CONNECTION")))
return $proxy;
return FALSE;
}
2年ぐらい前に作成したものなので、ちゃんと動くか確認して、必要なところを改良して使ってみてください。
この記事はご希望通りの内容でしたか?