ホスト名からIPアドレスを取得(gethostbyname)
#! /usr/local/bin/perl
# フォームデータ取り込み
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$FORM{$key} = $value;
}
# ホスト名からIPアドレスを取得
if($FORM{'host'}) {
@addr = unpack("C4", gethostbyname($FORM{'host'}));
$addr = join(".", @addr);
if(!($addr)) {
$addr = "取得できませんでした。";
}
}
# HTML出力
print qq(Content-type: text/html; charset=Shift_JIS\n\n);
print <<END;
<html>
<head>
<title>ホスト名からIPアドレスを取得</title>
</head>
<body>
<center>
<form name="form" action="$ENV{'SCRIPT_NAME'}" method="POST">
<h1 style="font-size:18px">ホスト名からIPアドレスを取得</h1>
ホスト名:<input type="text" name="host" value="" size="30">
<input type="submit" value="IPアドレス取得">
</form>
END
if($FORM{'host'}) {
print <<" END";
<big style="padding:3px;border:solid 2px #f33">
IPアドレス: $addr
</big><br>
END
}
print <<END;
</center>
<br><br><br><br><br>
<center><a href="/">トップページへ</a></center>
</body>
</html>
END
exit;
〔 実行する 〕