<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