WhoisGW
Table of Contents
概要
- jwhois を実行し、ドメイン管理者情報を表示します。
- spam 送信の元になるため、パスワードを設定するなどして濫用させないようにすること。
ソース
WhoisGW.cgi
#!/usr/bin/perl
# Whois ゲートウェイ
# spam 送信の元になるため、パスワードを設定するなどして濫用させないようにすること。
use strict;
use warnings;
use utf8;
use Encode;
use CGI::Pretty qw( -no_xhtml *table ); # //HTML 4.01 Transitional//EN
my $charsetConsole = 'UTF-8';
my $charsetFile = 'UTF-8';
binmode( STDIN, ":encoding($charsetConsole)" );
binmode( STDOUT, ":encoding($charsetConsole)" );
binmode( STDERR, ":encoding($charsetConsole)" );
my $cgiName = 'WhoisGW';
my $q = new CGI;
$q->charset( $charsetConsole );
my $domain = $q->param( 'domain' ) || '';
print makeHeader();
if ( $domain ){
if ( $domain =~ /^(\d+\.\d+\.\d+\.\d+|[a-z0-9][\-\.a-z0-9]+[a-z0-9])$/i ){
print execWhois( $domain );
} else {
print makeForm();
print $q->p('ドメイン名が不正です。');
}
} else {
print makeForm();
}
print makeFooter();
exit;
sub makeHeader
{
my $ret = '';
$ret .= $q->header();
$ret .= $q->start_html(
-title => $cgiName,
-lang => 'ja-JP',
-head => [
$q->meta( { -http_equiv => 'Content-style-type', -content => 'text/css' } ),
$q->meta( { -http_equiv => 'Content-script-type', -content => 'text/javascript' } ),
],
-style => [ { -src => '/take.css' }, ],
);
$ret .= $q->h1( $q->a( { -href => $q->url }, $cgiName ) );
return $ret;
}
sub makeFooter
{
my $ret = '';
$ret .= $q->end_html . "\n";
return $ret;
}
sub execWhois
{
my $domain = shift || '';
my $ret = $q->pre( join( "", `jwhois -df $domain` ) );
return $ret;
}
sub makeForm
{
my $ret = '';
$ret .= $q->start_form(
-action => $q->url,
-enctype => 'multipart/form-data',
);
$ret .= $q->start_table( { -summary => 'Parameters', -border => 1 } );
$ret .= $q->Tr(
$q->th( 'Domain' ),
$q->td( $q->textfield( -name => 'domain', -size => 50 ) ),
);
$ret .= $q->Tr( $q->th(
{ -colspan => 2, -align => 'center' },
$q->submit( -name => 'action', -value => 'search' ),
) );
$ret .= $q->end_table();
$ret .= $q->end_form;
return $ret;
}
# EOF
WhoisGW.conf
<Directory "/var/www/html/WhoisGW">
AllowOverride AuthConfig
AuthType Digest
AuthName "WhoisGW"
AuthUserFile /var/www/passwd/passwords_digest
Require user whois
Options +ExecCGI
DirectoryIndex index.html index.htm index.cgi
Order allow,deny
Allow from all
</Directory>
リンク
- aguse.jp ウェブ調査
- ANSI Whois Gateway ドメイン名 / IPアドレス検索サービス