IPアドレスからホスト名を取得するサブルーチンです。
■ サブルーチン名
GetHostByAddr
■ 引数
- 環境変数 REMOTE_ADDR の内容
■ 戻値(配列)
- HOST名
■ 使い方
| $hostname = &GetHostByAddr($ENV{'REMOTE_ADDR'}); |
■ 説明
環境変数 REMOTE_ADDR の値から、ホスト名を取得します。環境変数 REMOTE_HOST が取得できないサーバ環境でお使いください。「$ENV{'REMOTE_ADDR'}」の代わりに、IPアドレスをそのまま入れても問題ありません。
たとえば、
$addr = '210.152.236.50'; $host = &GetHostByAddr($addr);すると、$host には、「www.yahoo.co.jp」が入ります。
■ サブルーチン
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;
}
|