[PHP-users 34382] Re: $_SERVERでユーザ名を調べる

shounari ml @ shiftra.jp
2009年 3月 10日 (火) 16:47:26 JST


肥田です。


> f藤岡です 肥田さま宛です。
> 
> > > >$host = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
> > で取得してみてください。
> 
> すでに、これで取得した値がログの[T_ADDR]に入っています。
> こうすると、当然ながら、負荷やレスポンスが気になりますので、実際はローカルに
> するとかの方策を考える予定です。

なるほど。
であれば そのサーバでは ホスト名は取れないのだと思いますよ。

マニュアルの gethostbyaddr関数のページにも書いてありますが、

> 返り値
> ホスト名を返します。
> 失敗した場合は、そのままの形の ip_address を文字列で返します。 

とのことですので。

なぜ取れないのか、というのは、DNSの設定やサーバ構成等も絡んでくるので、
一概には言えません。



> > REMOTE_HOST は、Apacheの設定の HostnameLookups が On でないと
> > 取得できなかったと思います。
> 
> Onであれは、上記と同じ物が入るのですか。わかりました。

Apacheの設定の HostnameLookups が On だと、例えば
$_SERVER['REMOTE_HOST'] には、XXX.XXX.XXX.XXX.ftth.ucom.ne.jp 
が入ります。

T_ADDR には、そのまま $_SERVER["REMOTE_ADDR"] を入れるのが良いかと
思います。


よろしくお願いします。

-- 
shounari <ml @ shiftra.jp>



PHP-users メーリングリストの案内