WhoisGW

概要

  • jwhois を実行し、ドメイン管理者情報を表示します。
  • spam 送信の元になるため、パスワードを設定するなどして濫用させないようにすること。

ソース

WhoisGW.cgi

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
-
|
-
|
|
!
-
|
!
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
-
|
|
|
!
 
 
-
|
|
|
!
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
#!/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

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
 
 
 
 
 
 
 
 
 
 
<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>

添付ファイル: fileWhoisGW.zip 261件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 02 Oct 2012 06:55:57 JST (2116d)