チャットでIPアドレスを表示させるには?

[上に] [前に] [次に]
ぎゅう [E-Mail] [HomePage] 1998/12/13(日) 06:12:49
どうもはじめまして。
突然質問で申し訳ありませんが、以前チャットで入室や退室をすると
IPアドレスが表示されていたんですが、最近表示されなくなってしまいました。
どうやらプロバイダーの方でサーバーを入れ替えてから表示されなくなってしまったようです。
CGIをほんの少しだけ勉強したところIPアドレスを知るにはREMOTE_HOSTというのを使えばいいと解かったんですが、どこに付け加えたらいいのか解かりませんし、
出来ればログだけに記録して画面には表示されないようにしたいのです。
CGIを勉強したといってもほとんど素人同然です。
なるべく詳しく教えてください。
よろしくお願いします。m(_ _ )m

B-Cus 1998/12/13(日) 17:16:02
環境変数 REMOTE_ADDRはクライアントのIPアドレスが入ってます。
環境変数 REMOTE_HOSTはクライアントのIPアドレスをホスト名に
変換したものが入ってますが、もしホスト名に変換できなかった
場合は、REMOTE_ADDRと同じIPアドレスが入ります。

ただ、WWWサーバの最大勢力であるapacheの最近のバージョンでは、
標準設定がREMOTE_HOSTにもIPアドレスが入るようになってますので
 =標準設定ではIPアドレスの逆引きをしない。なぜならDNSへの
  問い合わせにはそれなりの時間と負荷がかかるから
その場合は自前でIPアドレス→ホスト名の変換をしないといけません。

普通は
 $ip = "133.205.10.26";
 $fqdn = gethostbyaddr(pack('C4',split(/\./,$ip)),2) || $ip;
 print "$fqdn\n";
という書き方をします。

> 出来ればログだけに記録して画面には表示されないようにしたいのです。

 print "$fqdn\n";
の部分を、
 open(OUT,">>log");
 print OUT "$fqdn\n";
 close(LOG);
とすればいいでしょう。

> どこに付け加えたらいいのか解かりませんし、

これに関してはまず御自分で努力してみてください。
で、それでもわからなかったら、CGIのソースを見せて
改めて質問すればいいでしょう。

[上に] [前に] [次に]