IPアドレス・ホスト名を取得する PHP

IPアドレス・ホスト名を取得する PHP
  
line

IPアドレス・ホスト名を取得する PHP

Monday, Mar, 06, 2006
line

PHPでIPアドレス、ホスト名を取得する方法をメモしておきます。
また、プロクシ経由か判別する簡単な関数を作成してみました。

  • 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年ぐらい前に作成したものなので、ちゃんと動くか確認して、必要なところを改良して使ってみてください。

投稿者 campanella : 2006年03月06日 22:09 | PHP | 編集
line
□□□ コメント □□□

line
名前
メールアドレス
URL
コメント
 
 
  kado