CGI-BBS > CGI > Perl > $ENV{'REMOTE_HOST'}を取得した場合にIPアドレスが取得される。


カレッヂ
カレッヂ


質問者  投稿日 2004/9/16(木) 03:05:46
Perlについて$ENV{'REMOTE_HOST'}を取得した場合にIPアドレスが取得されてしまいます。
IPアドレスでは何も判断できないので、ホストアドレスがほしいのですが、
何がおかしいのでしょうか?

$host = $ENV{'REMOTE_HOST'};

で取得しています。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:メモ帳
FTPソフト:NextFTP
サーバ移転:していない
改造:していない 改造前不動
CGI習熟度:expert

回答者 しあわせのツボ  [削除]  投稿日 2004/9/16(木) 11:24:40
プロバイダはどちらですか?

ホスト名の取得はサーバ負荷が大きいため、オフに設定してあるサーバが多いようです。
どうしても必要なら、gethostbyaddrで明示的に逆引をさせると良いかもしれません。
質問者  [削除]  投稿日 2004/9/16(木) 23:37:47
http://www.pf-x.net/
こちらです。
負荷が大きいとはしりませんでした。

gethostbyaddrとは

$hostname = &GetHostByAddr($ENV{'REMOTE_ADDR'});

sub GetHostByAddr {
	my($ip_address) = @_;
	my(@addr) = split(/\./, $ip_address);
	my($packed_addr) = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]);
	my($name, $aliases, $addrtype, $length, @addrs);
	($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
	return $name;
}

というやつですか?
質問者  [削除]  投稿日 2004/9/16(木) 23:51:24
しあわせのツボさま。
無事ご教授いただいた方法で解決いたしました。
ありがとうございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技