IPアドレスをホスト名に、ホスト名をIPアドレスに変換します。  
IPアドレス ...  
ホスト名  


このページのソース
<html>
<head>
<title>IPアドレス、ホスト名変換</title>
<base target="swin">
<script type="text/javascript">
<!--
function subWIN(){
  swin=window.open("","swin","toolbar=0,menuber=0,scrollbars=1,status=0,width=450,height=300");
  swin.document.write("<body bgcolor=moccasin text=#006600 leftmargin=0><center><br><br><font size=4>お待ちください。</font></body>");
  swin.document.close();
  swin.focus();
  return true;
}
//-->
</script>
</head>
<body bgcolor="moccasin" text="#006600">
<center>
<br><br>
<font size="5" color="indianred"><b>IPアドレス、ホスト名変換</b></font>
<p>
<form name="cf" method="POST" action="iphenkan.cgi" onsubmit="return(subWIN())">
<table border=0 width=85% cellpadding=8 cellspacing=0>
  <tr bgcolor=lightcyan>
    <td width=35% align=right>
      <b>IPアドレス </b>
    </td>
    <td>
      <input type="text" name="ip1" size="3">.<input type="text" name="ip2" size="3">.<input type="text" name="ip3" size="3">.<input type="text" name="ip4" size="3">
    </td>
    <td>
      <input type="submit" name="action1" value="   変換   ">
    </td>
    <td width=25%>  </td>
  </tr>
  <tr bgcolor=lightblue>
    <td width=35% align=right>
      <b>ホスト名 </b>
    </td>
    <td>
      <input type="text" name="host" size="31"></td>
    <td>
      <input type="submit" name="action2" value="   変換   ">
    </td>
    <td width=25%>  </td>
  </tr>
</table>
</form>
</center>
</body>
</html>

iphenkan.cgiのソース

#!/usr/bin/perl

read(STDIN,$indata,$ENV{'CONTENT_LENGTH'});
foreach(split(/&/,$indata)){
  ($key,$val)=split(/=/);
  $val=~tr/+/ /;
  $val=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
  ${$key}=$val;
}
print qq|content-type: text/html; charset=Shift_JIS\n
<html>
<head>
<title>IPアドレス、ホスト名変換</title>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
</head>
<body bgcolor="moccasin" text="#006600">
<br>
<center>|;
if($action1&&($ip1!~/\d/||$ip2!~/\d/||$ip3!~/\d/||$ip4!~/\d/)||$action2&&$host!~/.+\.\w{2,4}/){
  print q|<br><b>データを入力してください。
</body>
</html>|;
exit();
}
print qq|<font size="5" color="indianred">変換結果</font>
<p>
<table border="0" width="85%" cellpadding="5" cellspacing="1">
  <tr bgcolor="lightcyan">
    <th>|;
if($action1){
  $hostname=gethostbyaddr(pack("C4",$ip1,$ip2,$ip3,$ip4),2);
  print qq|$ip1.$ip2.$ip3.$ip4
    </th>
  </tr>
  <tr bgcolor="lightblue"><th>|;
  if(!$hostname){
    print q|該当するホストが見つかりません。|;
  }else{
    print qq|<font size="5" color="indianred">$hostname</font>|;
  }
}elsif($action2){
  $addr=gethostbyname($host);
  $ipaddr=sprintf("%u.%u.%u.%u",unpack("C*",$addr));
  print qq|$host
    </th>
  </tr>
  <tr bgcolor="lightblue">
    <th>|;
  if(!$ipaddr||$ipaddr eq'0.0.0.0'){
    print q|該当するホストが見つかりません。|;
  }else{
    print qq|<font size="5" color="indianred">$ipaddr</font>|;
  }
}
print q|</th>
  </tr>
</table>
</body>
</html>|;
exit();

__END__

HTML&CGI ©1999 Telecom Corporation All rights reserved