use strict 'vars';
use File::stat;
use POSIX qw(:errno_h strftime);
use BBSD;
# 古いのは old に入れたぞー by や
# 了解です by む
# 070320 携帯と携帯用ブラウザ(ibis/jig)では変なホスト名規制なし by む
# 070425 jigブラウザのCIDRブロック追加 by む
# 070719 Willcom/EZweb/iモードのCIDRブロック追加 by む
# 070903 WillcomのCIDRブロック追加 by む
# 071009 Y!ケータイのCIDRブロック追加・変更 by む
# 071110 jigブラウザのCIDRブロック追加 by む
# 071114 jigブラウザのCIDRブロック追加 by む
# 071208 管理人の作業部分を整形(内容は変更せず)
# ibisBrowserゲートウェイ用新IPアドレスを登録
# WillcomのCIDRブロック追加
# 「関連ページ」のリンクを非表示に by む
# 071209 ibisBrowser(Windows Mobile版)に対応 by む
# 071211 beのアイコン周り。 by ひ
# 080209 ibisBrowserゲートウェイ用新IPアドレスを登録 by む
# 080214 c-othersがcに統合されたことに伴う改修 by む
# EZwebのアドレスレンジが増えたことに対応 by む
# 080216 公式P2の先が串だったらねぎまをつける by む
# 080218 tiger2514(なまずの棲家)のarea47表示を「地底」に設定 by む
# 080219 headline/BBYのDNSを新サーバに移行 by む
# 080221 stats/BBSのDNSを新サーバに移行 by む
# 080227 WillcomのCIDRブロック追加 by む
# 080301 foxDNSqueryをブロックしない$res->bgsendに変更 by む
# 080313 rock54/BBRのDNSを新サーバに移行 by む
# 080314 BBY/BBS/BBRのDNSサーバIPアドレスをinitFOXで定義 by む
# 080429 SoftBankのPCサイトブラウザに対応(jig, ibisと同じ処理) by む
# 080601 DoCoMoのiモードIDに本格対応 by む
# 080601a iモードIDへの対応リファイン(BBM/BBR/BBN) by む
# 080602 iモードフルブラウザからの書き込みに対応 by む
# 080603 ibis/jigブラウザのiモードID対応化に対応 by む
# 080618 WillcomのCIDRブロック追加 by む
# 080711 公式p2のIPアドレス追加 by む
# 080714 126.240.0.0/12 だったらiPhoneからの書き込みとする(ShikibetsuMark) by む
# 080714a 上記判断の後、UA経由を復活(ShikibetsuMark) by む
# 080718 iモード、EZwebのCIDRブロック追加 by む
# 080723 ヘッダーをいぢってみる by ひ
# 080727 IPv6に対応、BBQとBBX、foxSetHostの串っぽい判定部分はとりあえずスキップ by む
# 080727a IPv6スレ立て規制の判定を /48 で行う、IPv6時のIDを 48 + 16 + 64 bit で生成 by む
# 080728 IPv6時のIDを 上48 + 上64 + 下64 bit で生成 by む
# 080728a IPv6時のIDを 上48 + 上64 + 全128bit で生成 by む
# 080728b IPv6スレ立て規制の判定を /64 に戻してみる by む
# 080729 GetRemoteHostName: 一つ目の PTR レコードを見つけたら処理を打ち切る by む
# 080807 ula.cc/u.la/s2ch.net から書けなくなった問題を修正 by む
# 080906 musicnews も板別キャップに by む
# 080911 schipholの板別キャップ廃止 by む
# 080913 板別キャップかどうかはIsItabetsuCapで判定 by む
# 080913 newsのポイントを10000以上に変更 by ひ
# 080930 povertyのポイントは3000以上に変更 by や
# 081001 WillcomのCIDRブロック追加 by む
# 090112 ibisBrowserからdocomo携帯の時は7桁のIDじゃないとだめ(バグ取り) by む
# 090225 jigブラウザのCIDRブロック追加 by む
# 090324 ibisBrowser(SoftBank版)に対応 by む
# 090330 マイクロ秒の取得を syscall から Time::HiRes に変更 by む
# 090401 jigブラウザのCIDRブロック追加 by む
# 090426 EZwebのCIDRブロックを最新版に変更(追加と削除) by む
# 090605 jigブラウザのCIDRブロック追加・削除 by む
# 090619 トリップ新方式導入 by Sun
# 090731 emobile EMnetに対応、携帯扱いに。BBM2の対応は別途必要 by む
# 090781 emobile EMnetもBBM2に対応 by む
# 081220 iモードのCIDRブロック追加 by む
# 100105 Set-Cookie 有効期間の変更 by Sun
# 100219 EZwebのCIDRブロックを最新版に変更(追加) by む
# 100320 jigブラウザのCIDRブロック追加 by む
# 100402 stats.2ch.net (a.ns.bbs.2ch.net) のIPアドレス変更に対応 by む
# 100410 iPhone(panda)のCIDRブロック追加 by む
# 100414 headline.2ch.net (a.ns.bby.2ch.net) のIPアドレス変更に対応 by む
# 100420 Y!ケータイのCIDRブロック削除、PCサイトブラウザのCIDRブロック変更 by む
# 100516 なまずの棲家をtiger2514からbanana3104に変更 by む
# 100517 公式p2のIPアドレス一部変更 by む
# 100526 jigブラウザのCIDRブロック追加 by む
# 100531 live28デビューに対応、板あたりのスレッド数制限を live23/live24 と同じに by む
# 100601 live28ではSaborin有効 by む
# 100602 板あたりのスレッド数限界値の判定を板別に移行 by む
# 100603 スレッド数限界値を設定する板の判定をサブルーチン化 by む
# 100606 Saborinの更新判定をPIDによるものからrand()によるものに変更 by む
# 100617 hayabusaサーバは1/100秒まで表示 by む
# 100619 live*サーバの1/100秒表示解除 by む
# 100724 auのPCサイトビューアーのIPアドレスレンジからの投稿はエラーにする by む
# 100914 orz.2ch.ioからの投稿を許可 by garnet
# 100918 EZwebのCIDRブロックを最新版に変更(追加) by む
# 101005 jigブラウザのCIDRブロックを最新版に変更(追加・削除) by む
# 101014 WillcomのCIDRブロックを最新版に変更(追加・削除) by む
# 101028 jigブラウザのCIDRブロックを最新版に変更(追加) by む
#############################################################################
# BE のICONを表示する sssp://
#############################################################################
sub dispIconSssp
{
my ($GB) = @_;
if($GB->{icon} eq '') {return 0;}
if($GB->{NINNIN}) {return 0;} #株優ステルスでoff
# if(!$GB->{NEWTHREAD}) {return 0;} #スレ立て時以外はoff
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_OVERSEA_PROXY'} eq "checked") {return 1;}
# if($GB->{FORM}->{'bbs'} eq "operate2") {return 1;}
if($GB->{FORM}->{'bbs'} eq "news") {return 1;}
if($GB->{FORM}->{'bbs'} eq "poverty") {return 1;}
if($GB->{FORM}->{'bbs'} eq "news4vip") {return 1;}
return 0 ;
}
#############################################################################
# 携帯各社のサーバを数えるぞ
#############################################################################
sub countKeitaiServer
{
my ($GB) = @_ ;
return 1 ;
if($ENV{'SERVER_NAME'} !~ /gimpo/) {return 0;}
if(!$GB->{KEITAI}) {return 0;}
my $cname = "dc" ;
if($GB->{KEITAI} eq 2) { $cname = "au"; }
elsif($GB->{KEITAI} eq 3) { $cname = "sb"; }
elsif($GB->{KEITAI} eq 5) { $cname = "em"; }
my $fff = "./cname/" . $cname . "/" ;
if(!(-e $fff)) {mkdir($fff,0777);}
if(!(-e $fff)) {return 0;}
my $remo = $GB->{HOST29} ; #いわゆるリモホ
my $ipip = $ENV{REMOTE_ADDR} ;
$fff .= "$ipip.txt" ;
if(open(LX,">> $fff")){print LX "$remo\t\t\t\t\t\t\t\t\n";close(LX);}
return 1 ;
}
#############################################################################
# docomo携帯のiモードIDから、DNS問い合わせ用文字列を作成する
# 入力: iモードID文字列
# 戻り値: DNS問い合わせ用文字列
#############################################################################
sub MakeImodeIDforDNS
{
my ($imodeid) = @_;
my $komojiflag = $imodeid;
$komojiflag =~ tr/0-9A-Za-z/00000000000000000000000000000000000011111111111111111111111111/;
$imodeid = $imodeid . '-' . $komojiflag;
return $imodeid;
}
#############################################################################
# マルチバイト(日本語等)が書けない板 英語板
#############################################################################
sub NoJapanese
{
my ($GB) = @_ ;
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "checked")
{
my $a = $GB->{FORM}->{'MESSAGE'} . $GB->{FORM}->{'mail'} . $GB->{FORM}->{'FROM'} . $GB->{FORM}->{'subject'} ;
if($a =~ /[^a-zA-Z0-9\.\, #_<>\(\)\?\/\&\;\!\:\=\'\+\-\*\~\%\@\"\[\]\+]/) {&DispError2($GB,"ERROR!","日本語は受け付けていません"); }
}
# return 0 ;
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "kanji")
{
my $a = $GB->{FORM}->{'MESSAGE'} ;
# $a =~ s/[\x88-\x9F\xE0-\xFF][\x9F-\xFF]//g ;
$a =~ s/[\x88-\x9F\xE0-\xFF][\x80-\xFF]//g ;
$a =~ s/
//g ;
$a =~ s/ //g ;
$a =~ s/ //g ;
if($a ne '') {&DispError2($GB,"ERROR!","漢字しか受け付けていません"); }
}
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "hira")
{
my $a = $GB->{FORM}->{'MESSAGE'} ;
$a =~ s/[\x82][\x9E-\xFF]//g ;
$a =~ s/
//g ;
$a =~ s/ //g ;
$a =~ s/ //g ;
if($a ne '') {&DispError2($GB,"ERROR!","ひらがなしか受け付けていません"); }
}
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "kata")
{
my $a = $GB->{FORM}->{'MESSAGE'} ;
$a =~ s/>>[0-9\-,]+//g ; # >>23とか
$a =~ s/[\x81][\x48-\x49]//g ; # ? と !
$a =~ s/[\x81][\x5B-\x5C]//g ; # ー と ―
$a =~ s/[\x83][\x40-\x9F]//g ;
$a =~ s/
//g ;
$a =~ s/ //g ;
$a =~ s/ //g ;
if($a ne '') {&DispError2($GB,"ERROR!","カタカナしか受け付けていません"); }
}
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "senji")
{
my $a = $GB->{FORM}->{'MESSAGE'} . $GB->{FORM}->{'subject'} ;
$a =~ s/>>[0-9\-,]+//g ; # >>23とか
$a =~ s/!vip2:stop://g ; # !vip2:stop:!vip2:heal:
$a =~ s/!vip2:heal://g ; # !vip2:stop:
$a =~ s/(\x81[\x40-\xFF]|\x83[\x40-\x9F]|[\x88-\x9F][\x40-\xFF]|[\xE0-\xFF][\x40-\xFF])+//g; #(いろいろ記号|カタカナ|漢字aA|漢字bB)+
# $a =~ s/http:\/\/[a-zA-Z0-9.,_\/]+//g ; #URL 旧 ↓新
$a =~ s/h?ttps?:\/\/[a-zA-Z0-9.,_\/+-]+//g; # +- ダケ追加。h 抜キト
$a =~ s/
//g ;
$a =~ s/ //g ;
$a =~ s/ //g ;
if($a ne '') {&DispError2($GB,"ERROR!","漢字とカタカナしか受け付けていません"); }
}
#$GB->{FORM}->{'MESSAGE'} .= "
$FOX->{$GB->{FORM}->{bbs}}->{'BBS_RAWIP_CHECK'} // PREN=$GB->{COOKIES}{PREN}";
return 0 ;
}
#############################################################################
# 保守ツール対策 by や http://web1.nazca.co.jp/despair/hosyu/
#############################################################################
sub antiHosyu
{
my ($GB) = @_ ;
if($GB->{FORM}->{'FROM'} =~ /◆2d\.AlKjN5I/)
{
&DispError2($GB,"ERROR!","ktkr");
}
return 0 ;
}
#############################################################################
# 携帯での規約見せ 携帯DBの実験 by や
#############################################################################
sub useBBM2
{
my ($GB) = @_ ;
#return 0 ;
if($GB->{KEITAI}) {return 1;} #携帯
# if($GB->{P22CH}) {return 1;} #P2
return 0 ;
}
sub GooMorningKeitai
{
my ($GB) = @_ ;
#BBM異常時はするー
if(!$FOX->{BBM2}) {return 0;}
if(!&useBBM2($GB)) {return 0;}
my $au = &NotifyUlaBbmPOST($GB) ;
if($au eq 'ZZZ:700') {return 0;}
if($au eq 'ZZZ:701') {&DispError3($GB,"ERROR!","はじめまして。
701[$au]");}
if($au eq 'ZZZ:702') {&DispError3($GB,"ERROR!","あら、久しぶり。
702[$au]");}
if($au eq 'ZZZ:703') {&DispError3($GB,"ERROR!","こんばんわ。
703[$au]");}
if($au eq 'ZZZ:704') {&DispError3($GB,"ERROR!","かまた。
704[$au]");}
if($au eq 'ZZZ:705') {&DispError3($GB,"ERROR!","ぴんぽん。
705[$au]");}
if($au =~ /ZZZ:710/) {&DispError3($GB,"ERROR!","■ もちつけ2.0。
710[$au]");}
&DispError3($GB,"ERROR!","ただいま調整中。
?[$au]");
$FOX->{BBM2} = 0 ;
}
sub NotifyUlaBbmPOST
{
my ($GB) = @_;
my(%pm, $ua, $response) = () ;
my $host = "http://bbm2.2ch.net/test/z.so?" ;
$pm{'srv'} = $ENV{'SERVER_NAME'} ;
$pm{'tane'} = $GB->{IDNOTANE} ;
$pm{'ua'} = $ENV{'HTTP_USER_AGENT'} ;
$pm{'subject'} = $GB->{FORM}->{'subject'} ;
$pm{'FROM'} = $GB->{FORM}->{'FROM'} ;
$pm{'mail'} = $GB->{FORM}->{'mail'} ;
$pm{'bbs'} = $GB->{FORM}->{bbs} ;
$pm{'key'} = $GB->{FORM}->{key} ;
$pm{'newt'} = $GB->{NEWTHREAD} ;
$pm{'MESSAGE'} = $GB->{FORM}->{'MESSAGE'} ;
$ua = LWP::UserAgent->new() ;
$ua->agent('Mozilla/5.0 FOX(2ch.bbs)') ;
$ua->timeout(5);
$response = $ua -> post($host, \%pm);
my $db_content = $response->content();
# エラーチェック
if ($response->is_error)
{
return "通信エラー";
}
chomp($db_content);
return $db_content;
}
#############################################################################
# 伝説の機能 2.0
#############################################################################
sub VipQ2ON
{
my ($GB) = @_ ;
# if($GB->{FORM}->{bbs} eq 'operate2') {return 1;}
if($GB->{FORM}->{bbs} eq 'news') {return 1;}
# if($GB->{FORM}->{bbs} eq 'anime4vip') {return 1;}
if($GB->{FORM}->{bbs} eq 'news4vip') {return 1;}
if($GB->{FORM}->{bbs} eq 'news4viptasu') {return 1;}
if($GB->{FORM}->{bbs} eq 'campus') {return 1;}
return 0 ;
}
sub VipQ2
{
my ($GB) = @_ ;
if(!VipQ2ON($GB)) {return 0;}
my @lx = split(/\n/,$GB->{FORM}->{'MESSAGE'}) ;
$lx[0] =~ /\!vip2\:(\S+)\:/ ;
my $command = $1 ;
# if($command eq '') {return 0;}
# $GB->{FORM}->{'MESSAGE'} .= "
---
lx=$lx[0]
com=$command
";
# $GB->{FORM}->{'MESSAGE'} .= "
---
com=$command
";
if($command eq 'stop') {return &VipQ2Stop($GB);}
if($command eq 'heal') {return &VipQ2Heal($GB);}
return 0 ;
}
sub VipQ2Heal
{
my ($GB) = @_ ;
my $MP = 100 ;
my $MX = 2000 ;
my $IP = $ENV{REMOTE_ADDR} ;
$GB->{FORM}->{'MESSAGE'} .= "
---
";
# my $fff = "../$GB->{FORM}->{bbs}/vip2" ;
my $fff = "/md/tmp/book" ;
if(!(-e $fff)) {mkdir($fff,0777);}
if(!(-e $fff)) {return 0;}
$fff .= "/$GB->{FORM}->{'key'}.cgi" ;
my @dmg = () ;
my @vipdata = () ;
my $alldamege= 0 ;
if(open(DMG,"$fff"))
{
@dmg = ;
close(DMG) ;
}
foreach(@dmg)
{
@vipdata = split(/ /, $_);
$alldamege = $alldamege + $vipdata[3];
}
my $pay = 350 ;
if(!&wasteBE($GB,$pay)) {return 0;}
if( $alldamege < -300) {$MP = int(rand(100))+50;}
elsif($alldamege < -100) {$MP = int(rand(100))+50;}
elsif($alldamege < 0) {$MP = int(rand(200))+50;}
elsif($alldamege < 500) {$MP = int(rand(300))+50;}
else {$MP = int(rand(200))+50;}
$MP += 10 ;
$GB->{FORM}->{'MESSAGE'} .= "MP$pay使って回復の呪文を唱えた!★ミ $MP回復した。
";
if(open(STP,">> $fff"))
{
print STP "$GB->{FORM}->{'DMDM'}\t$GB->{FORM}->{'MDMD'}\t$IP\t-$MP\n";
close(STP) ;
}
my $dn = @dmg + 1 ;
# my $td = $MP * $dn ;
my $td = $alldamege - $MP ;
$GB->{FORM}->{'MESSAGE'} .= "このスレは$dn回目に回復の呪文を受けた ($td/$MX)
";
return 1;
}
sub VipQ2Stop
{
my ($GB) = @_ ;
my $MP = 150 ; #100 ;
my $MX = 2000 ; #1000 ;
my $PLUSATK = 0 ;
my $IP = $ENV{REMOTE_ADDR} ;
if($GB->{P22CH}) {$IP = $GB->{HOST2} ;} #IP from p2
if($GB->{FORM}->{bbs} eq 'news4vip') {$MX = 1000;}
if($GB->{FORM}->{bbs} eq 'news4viptasu') {$MX = int(rand(1000));}
if($GB->{FORM}->{bbs} eq 'anime4vip') {$MX = int(rand(1000));}
$GB->{NINNIN} = 0 ; #sakuの時はbe表示
$GB->{FORM}->{'MESSAGE'} .= "
---
";
if($GB->{BEpoints} < 8000) {$GB->{FORM}->{'MESSAGE'} .= "見習い戦士のふつうの攻撃
";}
elsif($GB->{BEelite} eq 'BRZ'){$GB->{FORM}->{'MESSAGE'} .= "プチヒーローのちょっとした攻撃
"; $PLUSATK = 5;}
elsif($GB->{BEelite} eq 'PLT'){$GB->{FORM}->{'MESSAGE'} .= "まほうつかいたんのつよめの攻撃
"; $PLUSATK = 10;}
elsif($GB->{BEelite} eq 'DIA'){$GB->{FORM}->{'MESSAGE'} .= "グランドプリーストのかなりの攻撃
"; $PLUSATK = 15;}
elsif($GB->{BEelite} eq 'SOL'){$GB->{FORM}->{'MESSAGE'} .= "真の勇者のさすがの攻撃
"; $PLUSATK = 20;}
# my $fff = "../$GB->{FORM}->{bbs}/vip2" ;
my $fff = "/md/tmp/book" ;
if(!(-e $fff)) {mkdir($fff,0777);}
if(!(-e $fff)) {return 0;}
$fff .= "/$GB->{FORM}->{'key'}.cgi" ;
my @dmg = () ;
if(open(DMG,"$fff"))
{
@dmg = ;
close(DMG) ;
}
foreach(@dmg)
{
# if($_ =~ /$GB->{FORM}->{'MDMD'}/ && $GB->{BEpoints} < 8000)
# if($_ =~ /$GB->{FORM}->{'MDMD'}/ && !$GB->{KABUU})
# if($_ =~ /$GB->{FORM}->{'MDMD'}/ && !$GB->{KABUU} && $GB->{FORM}->{bbs} ne 'news4viptasu')
if($_ =~ /$GB->{FORM}->{'MDMD'}/)
{
$GB->{FORM}->{'MESSAGE'} .= "すかった。
";
return 0 ;
}
}
foreach(@dmg)
{
# if($_ =~ /$IP/ && $GB->{BEpoints} < 8000)
# if($_ =~ /$IP/ && !$GB->{KABUU})
# if($_ =~ /$IP/ && !$GB->{KABUU} && $GB->{FORM}->{bbs} ne 'news4viptasu')
if($_ =~ /$IP/)
{
$GB->{FORM}->{'MESSAGE'} .= "すかった2。
";
return 0 ;
}
}
my @vipdata = () ;
my $alldamege= 0 ;
foreach(@dmg)
{
@vipdata = split(/ /, $_);
$alldamege = $alldamege + $vipdata[3];
}
my $mpmp = $MP + int(rand(300)) ;
if(!&wasteBE($GB,$mpmp)) {return 0;}
$GB->{FORM}->{'MESSAGE'} .= "MP$mpmp使ってへっぽこの呪文を唱えた。★ミ (スレのダメージ $alldamege)
";
if(open(STP,">> $fff"))
{
print STP "$GB->{FORM}->{'DMDM'}\t$GB->{FORM}->{'MDMD'}\t$IP\t$MP\n";
close(STP) ;
}
my $dn = @dmg + 1 ;
# my $td = $MP * $dn ;
my $td = $alldamege + $MP ;
$GB->{FORM}->{'MESSAGE'} .= "このスレは$dn回目のダメージを受けた ($td/$MX)
";
# $GB->{FORM}->{'MESSAGE'} .= "($GB->{BEelite})
";
if($GB->{KABUU})
{
if(open(STP,">> $fff"))
{
print STP "$GB->{FORM}->{'DMDM'}\t$GB->{FORM}->{'MDMD'}\t$IP\t$MP\n";
close(STP) ;
}
$td += $MP ;
$dn++ ;
$GB->{FORM}->{'MESSAGE'} .= "こうかは ばつぐんだ!! さらにこのスレは$dn回目のダメージを受けた ($td/$MX)
";
}
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($GB->{NOWTIME});
if($sec < 10)
{
if(open(STP,">> $fff"))
{
print STP "$GB->{FORM}->{'DMDM'}\t$GB->{FORM}->{'MDMD'}\t$IP\t$MP\n";
close(STP) ;
}
$td += $MP ;$dn++ ;
$GB->{FORM}->{'MESSAGE'} .= "ぼうそうがはじまった!! さらにこのスレは$dn回目のダメージを受けた ($td/$MX)
";
}
if($PLUSATK > 0)
{
if(open(STP,">> $fff"))
{
$MP = $PLUSATK;
print STP "$GB->{FORM}->{'DMDM'}\t$GB->{FORM}->{'MDMD'}\t$IP\t$MP\n";
close(STP) ;
$td += $MP ;
$dn++ ;
$GB->{FORM}->{'MESSAGE'} .= "追加攻撃!! さらにこのスレは$dn回目のダメージを受けた ($td/$MX)
";
}
}
if($td >= $MX)
{
&VipQ2Saku($GB,$GB->{FORM}->{bbs},$GB->{FORM}->{key}) ;
$GB->{FORM}->{'MESSAGE'} .= "このスレは・・・
停止しました。
";
$GB->{VIPQ2STOP} = 1 ; #スレスト
}
return 1;
}
sub gotoBobon
{
my ($GB,$log,$ipip,$mes) = @_ ;
if($ipip =~ /[^0-9\.]/) {return 0;}
#携帯
#団体役員(関東)<><>2008/09/29(月) 17:04:10.76 xN47qM/8O<>泣きそう<>うんこたれた
#<>wb35proxy04.ezweb.ne.jp(05001018144926_mi.ezweb.ne.jp)<>59.135.38.174<> (2dec14b8c0e2be97b74d845f3be5ced0 hardkitayo@yahoo.co.jp)<>KDDI-SH31 UP.Browser/6.2.0.10.3.5 (GUI) MMP/2.0
#P2
#四十代(埼玉県)<><>2008/09/29(月) 16:28:58.51 UZXBNes+P<>【news】ニュース速報運用情報13<>パス変更によるsaku回避すると“まずは”IPさらされるから、気をつけろ!
#<>cw43.razil.jp(462143)219.182.232.16<>210.135.98.43<> (85c00438802bac3606f3a3edbd96bbe9 iressa01@yahoo.co.jp)<>Monazilla/1.00 (P2/p2.2ch.net; p2-client-ip:
$log =~ /\((\S+)\)[0-9\.]*<>[0-9\.]+<>/ ;
my $yaki = $1 ;
my $rhost = gethostbyaddr(pack('c4',split(/\./, $ipip)), 2) || $ipip;
if($rhost =~ /docomo.ne.jp$/) {return "焼いてもらってちょ docomo[$yaki]";}
if($rhost =~ /ezweb.ne.jp$/) {return "焼いてもらってちょ AU[$yaki]";}
if($rhost =~ /jp-\w.ne.jp$/) {return "焼いてもらってちょ softbank[$yaki]";}
if($rhost =~ /vodafone.ne.jp$/) {return "焼いてもらってちょ softbank[$yaki]";}
if($rhost =~ /\.razil.jp$/) {return "焼いてもらってちょ P2[$yaki]";}
if($rhost =~ /\.maido3.com$/) {return "これは焼けない1";}
if($rhost =~ /\.ibis.ne.jp$/) {return "ibisはまだ対応していないのだ";}
if($rhost =~ /\.jig.jp$/) {return "jigはまだ対応していないのだ";}
my $bburl = "http://qb6.2ch.net/test/asokin/kiri.cgi?ox=$ipip&key=$mes&cow=274";
my $ua = LWP::UserAgent->new();
$ua->agent('Mozilla/5.0 FOX(2ch.se)');
$ua->timeout(3);
my $request = HTTP::Request->new('GET', $bburl);
my $response = $ua->request($request) ;#ここで GET 処理
return "わっ";
}
sub VipQ2Saku
{
my ($GB,$bbs,$key) = @_ ;
#$GB->{FORM}->{'MESSAGE'} .= "VipQ2Saku
";
my $logdat = "../../test/ggg/" . $bbs . "dat/" . $key . ".cgi";
if(!open(LXX,"$logdat")) {return 0;}
#$GB->{FORM}->{'MESSAGE'} .= "ログ発見
";
my @lxx = ;
close(LXX) ;
my $gxx = $lxx[0] ;
#(0a9a9eea0582eb7fad96dcbb0333de29 yakin@80.kg)<>
$gxx =~ / \(([0-9a-z]+) (\S+)\)<>/;
my $gx1 = $1 ;
my $gx2 = $2 ;
if($gx1 && $gx2)
{
my $sp = 300 ; # 基本値
$sp += int(rand(800)) ; # ランダム加算
if($GB->{KABUU}) {$sp *= 5;} # 株主優待加算
if(&wasteBEx($GB,$gx2,$gx1,$sp))
{
$GB->{FORM}->{'MESSAGE'} .= "$sp sakuった
";
}
else
{#パスワード変更で逃げたりポイント足りないときはボボン送り
my $bxx = $lxx[0] ;
$bxx =~ /<>([0-9\.]+)<>/ ;
my $ipip = $1 ;
my $rr = &gotoBobon($GB,$bxx,$ipip,"vip2:saku:($bbs)") ;
$GB->{FORM}->{'MESSAGE'} .= "( ̄ー ̄)ニヤリッ ($rr)
";
}
}
#●かな?
#$GB->{FORM}->{'MESSAGE'} .= "●かな?
";
my $mxx = $lxx[0] ;
#ちょろ ★<><>2007/12/24(月) 03:47:54.75 5vawQ6AY0<>すれたて<>
#●の一時停止のテスト<>KD125055017119.ppp-bb.dion.ne.jp[tjuTdvdhyupQ06ao]<>125.55.17.119<>tjuTdvdhyupQ06ao ( )<>Monazilla/1.00 (JaneView/0.1.12.1)
#[tjuTdvdhyupQ06ao]
my ($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9) = split(/<>/,$mxx) ;
$d6 =~ /\[([a-zA-Z0-9]+)\]/;
my $mx1 = $1 ;
my $mx2 = $1 ;
#&DispError2($GB,"ERROR!","d6=[$mx1][$d6][$mxx]");
#&DispError2($GB,"ERROR!","d6=[$mx1][$d6]");
if(length($mx1) eq 16)
{
$mx1 =~ s/\//\)/g;
$mx1 =~ s/\./\(/g;
my $logdat = "../../test/ggg/" . $bbs . "dat/" . $mx1 . ".cgi";
if(open(YAKI,"> $logdat"))
{
print YAKI "$mx2";
close(YAKI) ;
}
$GB->{FORM}->{'MESSAGE'} .= "
この●はしばらくの間スレ立てできなくなりました。
";
}
return 0;
}
sub VipQ2MaruyakiON
{
my ($GB) = @_ ;
if($GB->{FORM}->{bbs} ne 'news') {return 1;}
if($GB->{FORM}->{bbs} ne 'news4vip') {return 1;}
if($GB->{FORM}->{bbs} ne 'news4viptasu'){return 1;}
return 0 ;
}
sub VipQ2MaruyakiCheck
{
my ($GB) = @_ ;
if(!VipQ2MaruyakiON($GB)) {return 0;}
if(!$GB->{MARU}) {return 0;}
my $mx1 = $GB->{MARU} ;
$mx1 =~ s/\//\)/g;
$mx1 =~ s/\./\(/g;
my $logdat = "../../test/ggg/" . $GB->{FORM}->{bbs} . "dat/" . $mx1 . ".cgi";
if(-e $logdat)
{
my ($prsize,$prmtime)= ();
($prsize, $prmtime) = (local $_=stat($logdat)) ? ($_->size, $_->mtime) : (0, 0);
my $ctime = 0;
$ctime = time;
my $keika = $ctime - $prmtime ;
my $ato = 6*60*60 - $keika ;
if($ato > 0)
{
&DispError2($GB,"ERROR!","この●はしばらくの間スレ立てできません。[あと$ato秒](saku担当)");
}
else
{
unlink($logdat) ;
}
}
}
sub wasteBE()
{
my ($GB,$mp) = @_ ;
return &wasteBEx($GB,$GB->{FORM}->{'DMDM'},$GB->{FORM}->{'MDMD'},$mp);
}
sub wasteBEx()
{
my ($GB,$DMDM,$MDMD,$mp) = @_ ;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Status;
my $path = "d=$DMDM&m=$MDMD";
my $ua = LWP::UserAgent->new();
$ua->timeout(3);
my $request = HTTP::Request->new('GET', 'http://be.2ch.net/test/v.php?' . $path);
my $response = $ua->request($request) ;#ここで GET 処理
my $response_body = $response->content();#GETの結果はここに入っている
my $db_content = $response->content();
my ($user_points, $xxx) = split(/ /, $db_content);
if($xxx eq '')
{
$GB->{FORM}->{'MESSAGE'} .= "ログインしてないです。
";
return 0 ;
}
my $BEpoints = $user_points ;
my $BExxx = $xxx ;
if($BEpoints < $mp)
{
$GB->{FORM}->{'MESSAGE'} .= "MPが足りません。($mp/$BEpoints)";
return 0 ;
}
my $uiui = &rulaPayCost($DMDM,$MDMD,$BExxx,$mp);
if($uiui eq '通信エラー')
{
&DispError2($GB,"ERROR!","beサーバが・・・");
}
if($uiui =~ /insufficient points/)
{
$GB->{FORM}->{'MESSAGE'} .= '急ぎ杉ですよ。。。
';
return 0 ;
}
return 1;
}
#########################################
# BE ポイント消費
#########################################
sub rulaPayCost
{
my ($DMDM,$MDMD,$xxx,$ccc) = @_ ;
#http://be.2ch.net/test/delp.php?delp=1&i=570402296&d=1&poi=uirou1289&b=1
my $path = "delp=$ccc&i=$xxx&d=1&b=1&poi=uirou1289";
my $ua = LWP::UserAgent->new();
$ua->agent('Mozilla/5.0 Rula');
$ua->timeout(5);
my $request = HTTP::Request->new('GET', 'http://be.2ch.net/test/delp.php?' . $path);
$request -> header('Cookie' => "DMDM=$DMDM; MDMD=$MDMD; FOX=ehehe; ");
my $response = $ua->request($request) ;#ここで GET 処理
my $response_code = $response->code() ;#結果はここに入っている
my $response_body = $response->content() ;#GETの結果はここに入っている
# エラーチェック
if ($response->is_error)
{
return "通信エラー";
}
return $response_body ;
}
#############################################################################
# リモホ -> 都道府県名
#############################################################################
sub area47
{
my ($GB) = @_;
my @kenmei = () ;
@kenmei = (
'樺太','北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県',
'群馬県','埼玉県','千葉県','東京都','神奈川県','新潟県','富山県','石川県','福井県','山梨県',
'長野県','岐阜県','静岡県','愛知県','三重県','滋賀県','京都府','大阪府','兵庫県','奈良県',
'和歌山県','鳥取県','島根県','岡山県','広島県','山口県','徳島県','香川県','愛媛県','高知県',
'福岡県','佐賀県','長崎県','熊本県','大分県','宮崎県','鹿児島県','沖縄県','台湾','不明なsoftbank',
'東北地方','関東地方','中部地方','関西地方','四国地方','中国地方','九州地方','西日本','東日本','CATV-infoweb',
'空','糸','62','63','64','dion軍','田舎おでん','catv?','長屋','チベット自治区',
'北陸地方','山陰地方','中国四国','73','74','75','76','スリランカ','広西チワン族自治区','内モンゴル自治区',
'USA','カナダ','82','83','84','85','86','87','伊勢','地底',
'チリ') ;
if($GB->{FORM}->{bbs} eq 'news12345')
{
@kenmei = (
'横浜','福岡県','香川県','群馬県','宮城県','沖縄県','宮崎県','佐賀県','茨城県','高知県',
'岡山県','大阪府','秋田県','埼玉県','愛知県','新潟県','大分県','鹿児島県','静岡県','長崎県',
'長野県','愛媛県','鳥取県','神奈川県','三重県','兵庫県','京都府','東京都','滋賀県','奈良県',
'和歌山県','島根県','熊本県','山形県','石川県','富山県','徳島県','千葉県','福井県','岐阜県',
'福島県','北海道','山梨県','山口県','岩手県','広島県','栃木県','青森県','台湾','会津',
'関東地方','中部地方','関西地方','四国地方','中国地方','九州地方','西日本','東日本','東北地方','CATV-infoweb',
'空','糸','62','63','64','久留米','田舎おでん','讃岐','長屋','巣鴨',
'北陸地方','山陰地方','中国四国','73','74','75','76','スリランカ','ネブラスカ州','コネチカット州',
'USA','カナダ','82','83','84','85','86','87','88','地底',
'チリ') ;
}
if($GB->{FORM}->{bbs} eq 'campus')
{
@kenmei = (
'横浜','福岡県','香川県','群馬県','宮城県','沖縄県','宮崎県','佐賀県','茨城県','高知県',
'岡山県','大阪府','秋田県','埼玉県','愛知県','新潟県','大分県','鹿児島県','静岡県','長崎県',
'長野県','愛媛県','鳥取県','神奈川県','三重県','兵庫県','京都府','東京都','滋賀県','奈良県',
'和歌山県','島根県','熊本県','山形県','石川県','富山県','徳島県','千葉県','福井県','岐阜県',
'福島県','北海道','山梨県','山口県','岩手県','広島県','栃木県','青森県','台湾','会津',
'関東地方','中部地方','関西地方','四国地方','中国地方','九州地方','西日本','東日本','東北地方','CATV-infoweb',
'空','糸','62','63','64','久留米','田舎おでん','讃岐','長屋','巣鴨',
'北陸地方','山陰地方','中国四国','73','74','75','76','77','ネブラスカ州','コネチカット州',
'USA','カナダ','82','83','84','85','86','87','88','地底',
'チリ') ;
}
if($GB->{FORM}->{bbs} eq 'newsnewsnews')
{
@kenmei = (
'石油','もこりん','りんご','わんこそば','ささかまぼこ','きりたんぽ','さくらんぼ','もも','なっとう','ぎょうざ',
'こんにゃく','しまむら','らっかせい','もんじゃ','しうまい','おにぎり','ぶり','かぶらずし','らっきょう','ほうとう',
'聖火リレー','あゆ','はんぺん','味噌カツ','あかふく','鮒寿司','おたべ','たこやき','おいしい水','しか',
'うめぼし','なし','どろえび','きびだんご','もみじ饅頭','ふく','すだち','うどん','みかん','かつお',
'あら','とうふ','ちゃんぽん','馬刺し','カボス','そのまんま','黒酢','泡盛','ばなな','キムチ',
'黄河','長江','珠河','淮河','松花江','海河','銭塘江','平湖','春暁','ウイグル族',
'わたあめ','蜘蛛','62','63','64','笑','田舎おでん','プーアル茶','大酒','湖北省',
'回族','チワン族','ミャオ族','73','74','75','76','77','遼寧省','甘粛省',
'USA','カナダ','82','83','84','85','86','87','88','地底',
'酢豚') ;
}
my $xkenban = &area47s0($GB) ;
my $kenban = int($xkenban) ;
if($kenban >90000) {return "";}
if($kenban < 1)
{
if($xkenban) {return $xkenban;}
$kenban = 0 ;
}
if($kenban > 90) {$kenban = 90;}
return $kenmei[$kenban] ;
}
sub area47s0
{
my ($GB) = @_;
my $remo = $GB->{HOST29}; #いわゆるリモホ
#return "うはは";
#P2の時はルックアップ
if($GB->{P22CH})
{
my $p2r = "";
#return "アイダホ州";X-P2-Mobile-Serial-BBM
if($ENV{HTTP_USER_AGENT} =~ /p2-client-ip: (\d+\.\d+\.\d+\.\d+)/)
{
$p2r = $1;
# リモートホスト名を記録する(規制が効くように)
$remo = gethostbyaddr(pack('C4',split(/\./, $p2r)), 2) || $p2r;
}
else
{
&DispError2($GB,"ERROR!","進入禁止");
}
##携帯固有番号取得
if(&mumumuIsIP4EZWeb($p2r))
{
my $ser = $ENV{HTTP_X_P2_MOBILE_SERIAL_BBM} ;
#if(open(LX,">> HOST29.000")){print LX "(P2:AU)$remo($ser)\n";close(LX);}
if($ser eq ''){&DispError2($GB,"ERROR!","ERROR:端末固有情報を送信してください。");}
}
elsif(&mumumuIsIP4IMode($p2r))
{
my $ser = $ENV{HTTP_X_P2_MOBILE_SERIAL_BBM} ;
#if(open(LX,">> HOST29.000")){print LX "(P2:Docomo)$remo($ser)\n";close(LX);}
if($ser eq ''){&DispError2($GB,"ERROR!","ERROR:端末固有情報を送信してください。");}
}
elsif(&mumumuIsIP4Vodafone($p2r))
{
my $ser = $ENV{HTTP_X_P2_MOBILE_SERIAL_BBM} ;
#if(open(LX,">> HOST29.000")){print LX "(P2:SB)$remo($ser)\n";close(LX);}
if($ser eq ''){&DispError2($GB,"ERROR!","ERROR:端末固有情報を送信してください。");}
}
}
if($remo =~ /\.go\.jp$/) {return "伊勢";}
if($remo =~ /\.tw$/) {return "台";}
if($remo =~ /\.cn$/) {return "中";}
if($remo =~ /\.kr$/) {return "韓";}
if($remo =~ /\.kp$/) {return "朝";}
if($remo =~ /\.de$/) {return "独";}
if($remo =~ /\.us$/) {return "米";}
if($remo =~ /\.fr$/) {return "仏";}
if($remo =~ /\.uk$/) {return "英";}
if($remo =~ /\.is$/) {return "アイスランド";}
if($remo =~ /\.au$/) {return "豪";}
if($remo =~ /\.ca$/) {return "加";}
if($remo =~ /\.br$/) {return "ブラジル";}
if($remo =~ /\d+\.\d+\.\d+\.\d+$/) {return "アラビア";}
# SB
if($remo =~ /jp-.\.ne\.jp/)
{
#Jフォン東日本
if($remo =~ /jp-d\.ne\.jp/){return "北海道";}
if($remo =~ /jp-h\.ne\.jp/){return "東北・新潟";}
if($remo =~ /jp-t\.ne\.jp/){return "関東・甲信越";}
#Jフォン西日本
if($remo =~ /jp-k\.ne\.jp/){return "関西";}
if($remo =~ /jp-r\.ne\.jp/){return "北陸";}
if($remo =~ /jp-s\.ne\.jp/){return "四国";}
if($remo =~ /jp-n\.ne\.jp/){return "中国";}
if($remo =~ /jp-q\.ne\.jp/){return "九州・沖縄";}
#Jフォン東海 jp-c.ne.jp
if($remo =~ /jp-c\.ne\.jp/){return "東海";}
return 77;
}
# AU
if($remo =~ /\.ezweb\.ne\.jp/)
{
if($GB->{IDNOTANE} =~ /^0500101/) {return "関東";}
if($GB->{IDNOTANE} =~ /^0500103/) {return "東海";}
if($GB->{IDNOTANE} =~ /^0500401/) {return "関東・甲信越";}
if($GB->{IDNOTANE} =~ /^0500403/) {return "東海";}
if($GB->{IDNOTANE} =~ /^0500405/) {return "-長野";}
if($GB->{IDNOTANE} =~ /^050/) {return "東海・関東";}
if($GB->{IDNOTANE} =~ /^0700/) {return "関西・北陸";}
if($GB->{IDNOTANE} =~ /^0701/) {return "九州";}
if($GB->{IDNOTANE} =~ /^07022/) {return "山陽";}
if($GB->{IDNOTANE} =~ /^0702/) {return "中国・四国";}
if($GB->{IDNOTANE} =~ /^0703/) {return "新潟・東北";}
if($GB->{IDNOTANE} =~ /^0704/) {return "北陸地方";}
if($GB->{IDNOTANE} =~ /^0705/) {return "北海道";}
if($GB->{IDNOTANE} =~ /^0706/) {return "四国";}
if($GB->{IDNOTANE} =~ /^0707/) {return "九州・沖縄";}
if($GB->{IDNOTANE} =~ /^070/) {return "au-関東以外";}
#if(open(LX,">> HOST29.000")){print LX "(AU)$remo($GB->{IDNOTANE})\n";close(LX);}
return 78;
}
if($remo =~ /proxy(\d+)\.docomo\.ne\.jp/)
{
my $ppp = $1 ;
return 79 ;
}
#携帯はスルー
if($GB->{KEITAI})
{
return 78;
}
if($remo =~ /s(\d+)\.a(\d+)\.ap\.plala\.or\.jp$/)
{
my $pll = int($2);
if($pll eq 48) {return 68;}
return $pll;
}
# if($remo =~ /ap(\d+)\.ftth\.ucom\.ne\.jp$/) {return 32;}
if($remo =~ /\.eonet\.ne\.jp$/) {return 53;}
if($remo =~ /\.megaegg\.ne\.jp$/) {return 55;}
if($remo =~ /w\d+.eacc.dti.ne.jp$/) {return 57;}
if($remo =~ /e\d+.eacc.dti.ne.jp$/) {return 58;}
if($remo =~ /\.freed\.dti\.ne\.jp$/) {return 60;}
if($remo =~ /\.air-[a-z\d+-]+\.dti\.ne\.jp$/) {return 60;}
if($remo =~ /\.sec\.nifty\.com$/) {return 69;}
if($remo =~ /\.iij4u\.or\.jp$/) {return 69;}
if($remo =~ /\.bbexcite\.jp$/) {return 69;}
if($remo =~ /\.doubleroute\.jp$/) {return 69;}
if($remo =~ /\.prin\.ne\.jp$/) {return 69;}
if($remo =~ /\.ucom\.ne\.jp$/) {return 69;}
if($remo =~ /\.valley\.ne\.jp$/) {return 69;}
if($remo =~ /\.t-com\.ne\.jp$/) {return 69;}
if($remo =~ /\.yournet\.ne\.jp$/) {return 69;}
if($remo =~ /\.tiki\.ne\.jp$/) {return 69;}
if($remo =~ /\.atfreed\.alpha-net\.ne\.jp$/) {return 61;}
if($remo =~ /\.du\.alpha-net\.ne\.jp$/) {return 61;}
if($remo =~ /\.point\.ne\.jp$/) {return 51;}
if($remo =~ /userreverse\.dion\.ne\.jp$/) {return 65;}
# namazuplus用(89 = 地底)
if($remo =~ /banana3104\.maido3\.com$/) {return 89;}
if($remo =~ /(\S+)\.(ppp|ppp\-bb)\.dion\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47dion($GB,$remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /(\S+)\.asahi-net\.or\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47asahinet($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /(\S+)\.rev\.home\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47home($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /(\S+)\.2iij\.net$/)
{
my $ken = $1 ;
my $kenban = &area472iij($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.(\S+)\.ocn\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47ocn($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([\w-]+)\d\d\.ap\.so-net\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47sonet($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /-([a-z]+)-\d+\.[a-z\d\-]+\.enjoy\.ne\.jp$/)
{
my $ken = $1 ;
if(length($ken) eq 3)
{
my $kenban = &area47mesh($remo,$ken);
if($kenban) {return $kenban;}
}
elsif(length($ken) eq 4)
{
my $kenban = &area47sonet($remo,$ken);
if($kenban) {return $kenban;}
}
}
if($remo =~ /\.([a-z\d\-]+)\.enjoy\.ne\.jp$/)
{
my $ken = $1 ;
if(length($ken) eq 3)
{
my $kenban = &area47mesh($remo,$ken);
if($kenban) {return $kenban;}
}
elsif(length($ken) eq 4)
{
my $kenban = &area47sonet($remo,$ken);
if($kenban) {return $kenban;}
}
}
if($remo =~ /(\S+)\.ppp\.infoweb\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47infoweb($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /(\S+)\.odn\.(ad|ne)\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47odn($GB,$remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-z\-]+)\.nttpc\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47nttpc($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-z]+)\.sannet\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47dti($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-z]+)\.acca\.dti\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47dti($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-z]+)-ip\.dti\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47dti($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-z]+)\.[a-z]+\.alpha-net\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47dti($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /([a-z]+)\d+-p\d+\.[a-z]+\.hi-ho\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47hiho($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.(\S+)\.mesh\.ad\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47mesh($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /(\S+)\.ppp\.u-netsurf\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47unetsurf($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /softbank(\d\d\d\d\d\d)\d+\.bbtec\.net$/)
{
my $ken = $1 ;
my $kenban = &area47sb($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.zaq\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47zaq($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([a-zA-Z\d]+)\.vectant\.ne\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47vectant($remo,$ken);
if($kenban) {return $kenban;}
}
if($remo =~ /\.([\w-]+)\.ac\.jp$/)
{
my $ken = $1 ;
my $kenban = &area47ac($remo,$ken);
if($kenban) {return $kenban;}
}
# #catv
{
my $kenban = &area47catv($remo);
if($kenban) {return $kenban;}
}
return 99999;
}
sub area47dion
{
my ($GB,$remo,$ken) = @_;
if($ken =~ /^(KD\d\d\d\d\d\d\d\d\d)\d+/) {$ken = $1;}
elsif($ken =~ /^(KHP\d\d\d\d\d\d\d\d\d)\d+/) {$ken = $1;}
elsif($ken =~ /^([a-zA-Z]+\d\d\d)\d+/) {$ken = $1;}
my $r = int($FOX_KEN_DION{$ken}) ;
if(1 <= $r && $r <= 48)
{
#if(open(LX,">> HOST29.000")){print LX "(ooo)$remo($ken) = $r\n";close(LX);}
return $r ;
}
#●はスルー
if($GB->{MARU}) {return 65;}
#if(open(LX,">> HOST29.000")){print LX "(xxx)$remo($ken) = $r\n";close(LX);}
#&DispError2($GB,"ERROR!","「dion.ne.jp」はかけないのだ!!
ここでfusianasanして県名報告してネ");
return 65;
}
sub area47asahinet
{
my ($remo,$ken) = @_;
if($ken =~ /^([a-z]\d\d\d)\d+\.ppp/) {$ken = $1;}
my $r = int($FOX_KEN_ASAHI{$ken}) ;
if(1 <= $r && $r <= 48)
{
#if(open(LX,">> HOST29.000")){print LX "(ooo)$remo($ken) = $r\n";close(LX);}
return $r ;
}
#if(open(LX,">> HOST29.000")){print LX "(xxx)$remo($ken) = $r\n";close(LX);}
return 69;
}
sub area47home
{
my ($remo,$ken) = @_;
if($ken =~ /^61-27-/) {return 1;} #北海道
if($ken =~ /^61-25-140-/) {return 8;} #茨城
if($ken =~ /^61-26-231-/) {return 8;} #茨城
if($ken =~ /^59-171-144-/) {return 10;} #群馬
if($ken =~ /^61-24-20-/) {return 10;} #群馬
if($ken =~ /^59-171-106-/) {return 11;} #埼玉
if($ken =~ /^61-21-248-/) {return 11;} #埼玉
if($ken =~ /^61-21-253-/) {return 11;} #埼玉
if($ken =~ /^61-23-223-/) {return 11;} #埼玉
if($ken =~ /^203-165-84-/) {return 11;} #埼玉
if($ken =~ /^203-165-244-/) {return 11;} #埼玉
if($ken =~ /^210-20-165-/) {return 11;} #埼玉
if($ken =~ /^210-20-196-/) {return 11;} #埼玉
if($ken =~ /^61-23-72-/) {return 12;} #千葉
if($ken =~ /^61-23-94-/) {return 12;} #千葉
if($ken =~ /^61-24-24-/) {return 12;} #千葉
if($ken =~ /^203-165-164-/) {return 12;} #千葉
if($ken =~ /^210-194-64-/) {return 12;} #千葉
if($ken =~ /^210-194-66-/) {return 12;} #千葉
if($ken =~ /^59-171-201-/) {return 13;} #東京
if($ken =~ /^60-62-121-/) {return 13;} #東京
if($ken =~ /^61-23-157-/) {return 13;} #東京
if($ken =~ /^61-23-171-/) {return 13;} #東京
if($ken =~ /^61-24-32-/) {return 13;} #東京
if($ken =~ /^61-26-3-/) {return 13;} #東京
if($ken =~ /^61-26-36-/) {return 13;} #東京
if($ken =~ /^61-26-50-/) {return 13;} #東京
if($ken =~ /^61-26-232-/) {return 13;} #東京
if($ken =~ /^124-144-94-/) {return 13;} #東京
if($ken =~ /^125-14-111-/) {return 13;} #東京
if($ken =~ /^125-14-81-/) {return 13;} #東京
if($ken =~ /^125-14-240-/) {return 13;} #東京
if($ken =~ /^203-165-104-/) {return 13;} #東京
if($ken =~ /^203-165-204-/) {return 13;} #東京
if($ken =~ /^203-165-232-/) {return 13;} #東京
if($ken =~ /^210-20-66-/) {return 13;} #東京
if($ken =~ /^210-194-120-/) {return 13;} #東京
if($ken =~ /^210-194-152-/) {return 13;} #東京
if($ken =~ /^203-165-96-/) {return 13;} #東京
if($ken =~ /^61-21-73-/) {return 14;} #神奈川
if($ken =~ /^59-171-234-/) {return 14;} #神奈川
if($ken =~ /^61-24-194-/) {return 14;} #神奈川
if($ken =~ /^61-24-194-/) {return 14;} #神奈川
if($ken =~ /^61-26-205-/) {return 14;} #神奈川
if($ken =~ /^61-26-246-/) {return 14;} #神奈川
if($ken =~ /^61-26-253-/) {return 14;} #神奈川
if($ken =~ /^124-144-103-/) {return 14;} #神奈川
if($ken =~ /^125-14-212-/) {return 14;} #神奈川
if($ken =~ /^124-144-137-/) {return 14;} #神奈川
if($ken =~ /^210-20-154-/) {return 14;} #神奈川
if($ken =~ /^210-194-19-/) {return 14;} #神奈川
if($ken =~ /^210-194-62-/) {return 14;} #神奈川
if($ken =~ /^210-194-184-/) {return 14;} #神奈川
if($ken =~ /^210-194-240-/) {return 14;} #神奈川
if($ken =~ /^60-62-34-/) {return 15;} #新潟
if($ken =~ /^125-15-201-/) {return 25;} #滋賀
# if($ken =~ /^61-27-136-/) {return 31;} #鳥取
if($ken =~ /^60-62-47-/) {return 31;} #鳥取
if($ken =~ /^61-22-30-/) {return 35;} #山口
if($ken =~ /^61-22-45-/) {return 35;} #山口
if($ken =~ /^61-22-39-/) {return 40;} #福岡
if($ken =~ /^61-22-235-/) {return 40;} #福岡
if($ken =~ /^61-26-232-/) {return 40;} #福岡
# if(open(LX,">> HOST29.000")){print LX "(home)$remo($ken)\n";close(LX);}
#&DispError2($GB,"ERROR!","「home.ne.jp」はかけないのだ!!
ここでfusianasanして県名報告してネ");
return 69;
}
sub area47sb
{
my ($remo,$ken) = @_;
if($ken eq '126068') {return 1;} #北海道
if($ken eq '218127') {return 1;} #北海道
if($ken eq '219041') {return 1;} #北海道
if($ken eq '219168') {return 1;} #北海道
if($ken eq '219181') {return 1;} #北海道
if($ken eq '221023') {return 1;} #北海道
if($ken eq '221030') {return 1;} #北海道
if($ken eq '221032') {return 1;} #北海道
if($ken eq '221036') {return 1;} #北海道
if($ken eq '221046') {return 1;} #北海道
if($ken eq '221062') {return 1;} #北海道
if($ken eq '221029') {return 2;} #青森
if($ken eq '221054') {return 2;} #青森
if($ken eq '219053') {return 3;} #岩手
if($ken eq '219173') {return 3;} #岩手
if($ken eq '221033') {return 3;} #岩手
if($ken eq '221039') {return 3;} #岩手
if($ken eq '221053') {return 3;} #岩手
if($ken eq '221054') {return 3;} #岩手
if($ken eq '126098') {return 4;} #宮城
if($ken eq '218112') {return 4;} #宮城
if($ken eq '219057') {return 4;} #宮城・秋田
if($ken eq '219171') {return 4;} #宮城
if($ken eq '219208') {return 4;} #宮城
if($ken eq '221020') {return 4;} #宮城
if($ken eq '221026') {return 4;} #宮城
if($ken eq '221105') {return 4;} #秋田
if($ken eq '221058') {return 5;} #宮城
if($ken eq '219051') {return 7;} #福島・宮城
if($ken eq '219057') {return 7;} #福島
if($ken eq '219172') {return 7;} #福島
if($ken eq '221044') {return 7;} #福島
if($ken eq '060100') {return 8;} #茨城
if($ken eq '218137') {return 8;} #茨城
if($ken eq '219006') {return 8;} #茨城
if($ken eq '220005') {return 8;} #茨城
if($ken eq '220006') {return 8;} #茨城
if($ken eq '221040') {return 8;} #茨城
if($ken eq '221043') {return 8;} #茨城
if($ken eq '060091') {return 9;} #栃木
if($ken eq '126096') {return 9;} #栃木
if($ken eq '219055') {return 9;} #栃木
if($ken eq '219056') {return 9;} #栃木
if($ken eq '219192') {return 9;} #栃木
if($ken eq '220004') {return 9;} #栃木
if($ken eq '221027') {return 9;} #栃木
if($ken eq '221031') {return 9;} #栃木
if($ken eq '220003') {return 11;} #群馬
if($ken eq '220007') {return 11;} #群馬
if($ken eq '060086') {return 11;} #埼玉
if($ken eq '218128') {return 11;} #埼玉
if($ken eq '218118') {return 11;} #埼玉
if($ken eq '218119') {return 11;} #埼玉
if($ken eq '218177') {return 11;} #埼玉
if($ken eq '219012') {return 11;} #埼玉
if($ken eq '219013') {return 11;} #埼玉
if($ken eq '219014') {return 11;} #埼玉
if($ken eq '219058') {return 11;} #埼玉・群馬
if($ken eq '219181') {return 11;} #埼玉
if($ken eq '219182') {return 11;} #埼玉
if($ken eq '219183') {return 11;} #埼玉
if($ken eq '219193') {return 11;} #埼玉
if($ken eq '219194') {return 11;} #埼玉
if($ken eq '219199') {return 11;} #埼玉
if($ken eq '219201') {return 11;} #埼玉
if($ken eq '219214') {return 11;} #埼玉
if($ken eq '219200') {return 11;} #埼玉
if($ken eq '221018') {return 11;} #埼玉
if($ken eq '220001') {return 11;} #埼玉
if($ken eq '060088') {return 12;} #千葉
if($ken eq '060089') {return 12;} #千葉
if($ken eq '060101') {return 12;} #千葉
if($ken eq '126064') {return 12;} #千葉
if($ken eq '126112') {return 12;} #千葉
if($ken eq '218135') {return 12;} #千葉
if($ken eq '218178') {return 12;} #千葉
if($ken eq '218180') {return 12;} #千葉
if($ken eq '219010') {return 12;} #千葉
if($ken eq '219011') {return 12;} #千葉
if($ken eq '219016') {return 12;} #千葉
if($ken eq '219174') {return 12;} #千葉
if($ken eq '219176') {return 12;} #千葉
if($ken eq '219189') {return 12;} #千葉
if($ken eq '219190') {return 12;} #千葉
if($ken eq '219191') {return 12;} #千葉
if($ken eq '221022') {return 12;} #千葉
if($ken eq '221025') {return 12;} #千葉
if($ken eq '221038') {return 12;} #千葉
if($ken eq '221056') {return 12;} #千葉
if($ken eq '060076') {return 13;} #東京
if($ken eq '060081') {return 13;} #東京
if($ken eq '060085') {return 13;} #東京
if($ken eq '126065') {return 13;} #東京
if($ken eq '126080') {return 13;} #東京
if($ken eq '218130') {return 13;} #東京
if($ken eq '218132') {return 13;} #東京
if($ken eq '218133') {return 13;} #東京
if($ken eq '218134') {return 13;} #東京
if($ken eq '218138') {return 13;} #東京
if($ken eq '218176') {return 13;} #東京
if($ken eq '219000') {return 13;} #東京
if($ken eq '219001') {return 13;} #東京
if($ken eq '219002') {return 13;} #東京
if($ken eq '219003') {return 13;} #東京
if($ken eq '219004') {return 13;} #東京
if($ken eq '219005') {return 13;} #東京
if($ken eq '219007') {return 13;} #東京
if($ken eq '219008') {return 13;} #東京
if($ken eq '219009') {return 13;} #東京
if($ken eq '219011') {return 13;} #東京
if($ken eq '219015') {return 13;} #東京
if($ken eq '219018') {return 13;} #東京
if($ken eq '219017') {return 13;} #東京
if($ken eq '219019') {return 13;} #東京
if($ken eq '219036') {return 13;} #東京
if($ken eq '219037') {return 13;} #東京
if($ken eq '219169') {return 13;} #東京
if($ken eq '219176') {return 13;} #東京
if($ken eq '219184') {return 13;} #東京
if($ken eq '219185') {return 13;} #東京
if($ken eq '219186') {return 13;} #東京
if($ken eq '219187') {return 13;} #東京
if($ken eq '219188') {return 13;} #東京
if($ken eq '219195') {return 13;} #東京
if($ken eq '219196') {return 13;} #東京
if($ken eq '219197') {return 13;} #東京
if($ken eq '219198') {return 13;} #東京
if($ken eq '219215') {return 13;} #東京
if($ken eq '219218') {return 13;} #東京
if($ken eq '221016') {return 13;} #東京
if($ken eq '221021') {return 13;} #東京
if($ken eq '221028') {return 13;} #東京
if($ken eq '221034') {return 13;} #東京
if($ken eq '221041') {return 13;} #東京
if($ken eq '221106') {return 13;} #東京
if($ken eq '221108') {return 13;} #東京
if($ken eq '060082') {return 14;} #神奈川
if($ken eq '060083') {return 14;} #神奈川
if($ken eq '126067') {return 14;} #神奈川
if($ken eq '219204') {return 14;} #神奈川
if($ken eq '218139') {return 14;} #神奈川
if($ken eq '218140') {return 14;} #神奈川
if($ken eq '218141') {return 14;} #神奈川
if($ken eq '218144') {return 14;} #神奈川
if($ken eq '219035') {return 14;} #神奈川
if($ken eq '219038') {return 14;} #神奈川
if($ken eq '219039') {return 14;} #神奈川
if($ken eq '219042') {return 14;} #神奈川
if($ken eq '219043') {return 14;} #神奈川
if($ken eq '219044') {return 14;} #神奈川
if($ken eq '219045') {return 14;} #神奈川
if($ken eq '219046') {return 14;} #神奈川
if($ken eq '219052') {return 14;} #神奈川
if($ken eq '219175') {return 14;} #神奈川
if($ken eq '219177') {return 14;} #神奈川
if($ken eq '219178') {return 14;} #神奈川
if($ken eq '219179') {return 14;} #神奈川
if($ken eq '219180') {return 14;} #神奈川
if($ken eq '219202') {return 14;} #神奈川
if($ken eq '219205') {return 14;} #神奈川
if($ken eq '219206') {return 13;} #神奈川・東京
if($ken eq '219207') {return 14;} #神奈川
if($ken eq '221017') {return 14;} #神奈川
if($ken eq '221019') {return 14;} #神奈川
if($ken eq '221037') {return 14;} #神奈川
if($ken eq '219040') {return 15;} #新潟
if($ken eq '219058') {return 15;} #新潟
if($ken eq '220008') {return 15;} #新潟
if($ken eq '221052') {return 15;} #新潟
if($ken eq '221060') {return 15;} #新潟
if($ken eq '220021') {return 16;} #富山
if($ken eq '220052') {return 16;} #富山
if($ken eq '219213') {return 17;} #石川
if($ken eq '221071') {return 17;} #石川
if($ken eq '221081') {return 17;} #石川
if($ken eq '221093') {return 17;} #石川
if($ken eq '221095') {return 17;} #石川
if($ken eq '219061') {return 18;} #福井
if($ken eq '220024') {return 18;} #福井
if($ken eq '220010') {return 19;} #山梨・静岡
if($ken eq '220009') {return 20;} #長野
if($ken eq '126069') {return 22;} #静岡
if($ken eq '218131') {return 22;} #静岡
if($ken eq '218143') {return 22;} #静岡
if($ken eq '219047') {return 22;} #静岡
if($ken eq '219048') {return 22;} #静岡
if($ken eq '220023') {return 22;} #静岡・岐阜
if($ken eq '220000') {return 22;} #静岡
if($ken eq '220002') {return 22;} #静岡
if($ken eq '221024') {return 22;} #静岡・三重
if($ken eq '060096') {return 23;} #岐阜
if($ken eq '220031') {return 23;} #岐阜
if($ken eq '221035') {return 23;} #岐阜
if($ken eq '221045') {return 23;} #岐阜
if($ken eq '218122') {return 23;} #愛知
if($ken eq '218142') {return 23;} #愛知
if($ken eq '218179') {return 23;} #愛知
if($ken eq '219032') {return 23;} #愛知
if($ken eq '219033') {return 23;} #愛知
if($ken eq '219049') {return 23;} #愛知
if($ken eq '219050') {return 23;} #愛知・三重
if($ken eq '219170') {return 23;} #愛知
if($ken eq '219203') {return 23;} #愛知
if($ken eq '219209') {return 23;} #愛知
if($ken eq '219210') {return 23;} #愛知
if($ken eq '220028') {return 23;} #愛知
if($ken eq '220029') {return 23;} #愛知
if($ken eq '220002') {return 23;} #愛知
if($ken eq '220030') {return 23;} #愛知
if($ken eq '221057') {return 23;} #愛知
if($ken eq '221059') {return 23;} #愛知
if($ken eq '221107') {return 23;} #愛知
if($ken eq '219054') {return 24;} #三重
if($ken eq '220026') {return 24;} #三重
if($ken eq '220027') {return 24;} #三重・愛知
if($ken eq '218129') {return 25;} #滋賀
if($ken eq '220051') {return 25;} #滋賀
if($ken eq '221075') {return 25;} #滋賀
if($ken eq '218121') {return 26;} #京都
if($ken eq '218123') {return 26;} #京都
if($ken eq '219025') {return 26;} #京都
if($ken eq '219029') {return 26;} #京都
if($ken eq '219030') {return 26;} #京都・滋賀
if($ken eq '219092') {return 26;} #京都
if($ken eq '220041') {return 26;} #京都
if($ken eq '220037') {return 26;} #京都
if($ken eq '220046') {return 26;} #京都
if($ken eq '220047') {return 26;} #京都
if($ken eq '221055') {return 26;} #京都
if($ken eq '2210920') {return 26;} #京都
if($ken eq '060105') {return 27;} #大阪
if($ken eq '218121') {return 27;} #大阪
if($ken eq '218126') {return 27;} #大阪
if($ken eq '218129') {return 27;} #大阪
if($ken eq '218136') {return 27;} #大阪
if($ken eq '218181') {return 27;} #大阪
if($ken eq '218182') {return 27;} #大阪
if($ken eq '219020') {return 27;} #大阪
if($ken eq '219021') {return 27;} #大阪
if($ken eq '219023') {return 27;} #大阪
if($ken eq '219024') {return 27;} #大阪
if($ken eq '219062') {return 27;} #大阪
if($ken eq '220011') {return 27;} #大阪
if($ken eq '220012') {return 27;} #大阪
if($ken eq '220013') {return 27;} #大阪
if($ken eq '220018') {return 27;} #大阪
if($ken eq '220032') {return 27;} #大阪
if($ken eq '220033') {return 27;} #大阪
if($ken eq '220034') {return 27;} #大阪
if($ken eq '220035') {return 27;} #大阪
if($ken eq '220036') {return 27;} #大阪
if($ken eq '220038') {return 27;} #大阪
if($ken eq '220042') {return 27;} #大阪
if($ken eq '060110') {return 28;} #兵庫
if($ken eq '218124') {return 28;} #兵庫
if($ken eq '218125') {return 28;} #兵庫
if($ken eq '218154') {return 28;} #兵庫
if($ken eq '219022') {return 28;} #兵庫
if($ken eq '219026') {return 28;} #兵庫
if($ken eq '219027') {return 28;} #兵庫
if($ken eq '220014') {return 28;} #兵庫
if($ken eq '220015') {return 28;} #兵庫
if($ken eq '220016') {return 28;} #兵庫
if($ken eq '220017') {return 28;} #兵庫
if($ken eq '220039') {return 28;} #兵庫
if($ken eq '220040') {return 28;} #兵庫
if($ken eq '220044') {return 28;} #兵庫
if($ken eq '221064') {return 28;} #兵庫
if($ken eq '221092') {return 28;} #兵庫
if($ken eq '218183') {return 29;} #奈良・京都
if($ken eq '126070') {return 29;} #奈良
if($ken eq '220043') {return 29;} #奈良
if($ken eq '221072') {return 29;} #奈良
if($ken eq '220050') {return 30;} #和歌山
if($ken eq '060120') {return 31;} #鳥取
if($ken eq '221079') {return 32;} #島根
if($ken eq '060118') {return 33;} #岡山
if($ken eq '126087') {return 33;} #岡山
if($ken eq '218115') {return 33;} #岡山
if($ken eq '219063') {return 33;} #岡山
if($ken eq '220056') {return 33;} #岡山
if($ken eq '221084') {return 33;} #岡山・広島
if($ken eq '221094') {return 33;} #岡山・広島
if($ken eq '221097') {return 33;} #岡山
if($ken eq '221100') {return 33;} #岡山
if($ken eq '060116') {return 34;} #広島
if($ken eq '218120') {return 34;} #広島
if($ken eq '219060') {return 34;} #広島・鳥取
if($ken eq '220019') {return 34;} #広島
if($ken eq '220020') {return 34;} #広島
if($ken eq '220025') {return 34;} #広島
if($ken eq '220053') {return 34;} #広島
if($ken eq '219034') {return 35;} #山口
if($ken eq '221063') {return 35;} #山口
if($ken eq '221085') {return 35;} #山口
if($ken eq '221086') {return 36;} #徳島
if($ken eq '219028') {return 37;} #香川
if($ken eq '219211') {return 37;} #香川
if($ken eq '220045') {return 37;} #香川
if($ken eq '221080') {return 37;} #香川
if($ken eq '221096') {return 37;} #香川
if($ken eq '221076') {return 38;} #愛媛
if($ken eq '220048') {return 38;} #愛媛
if($ken eq '221089') {return 39;} #高知
if($ken eq '126071') {return 40;} #福岡
if($ken eq '126071') {return 40;} #福岡
if($ken eq '060122') {return 40;} #福岡
if($ken eq '218114') {return 40;} #福岡
if($ken eq '218116') {return 40;} #福岡
if($ken eq '218117') {return 40;} #福岡
if($ken eq '219212') {return 40;} #福岡
if($ken eq '220054') {return 40;} #福岡
if($ken eq '220058') {return 40;} #福岡
if($ken eq '220059') {return 40;} #福岡
if($ken eq '220060') {return 40;} #福岡
if($ken eq '220061') {return 40;} #福岡
if($ken eq '221098') {return 40;} #福岡
if($ken eq '221078') {return 40;} #福岡
if($ken eq '221098') {return 40;} #福岡
if($ken eq '221101') {return 40;} #福岡
if($ken eq '220020') {return 41;} #佐賀・福岡
if($ken eq '221067') {return 41;} #佐賀
if($ken eq '220055') {return 42;} #長崎
if($ken eq '221083') {return 43;} #熊本
if($ken eq '221088') {return 43;} #熊本
if($ken eq '220022') {return 43;} #熊本
if($ken eq '060125') {return 44;} #大分
if($ken eq '218113') {return 44;} #大分
if($ken eq '220062') {return 44;} #大分
if($ken eq '221077') {return 45;} #宮崎
if($ken eq '220063') {return 46;} #鹿児島
if($ken eq '221065') {return 46;} #鹿児島
if($ken eq '221074') {return 46;} #鹿児島
if($ken eq '221082') {return 46;} #鹿児島
if($ken eq '221087') {return 46;} #鹿児島
if($ken eq '221091') {return 46;} #鹿児島
if($ken eq '219031') {return 47;} #沖縄
if($ken eq '220057') {return 47;} #沖縄
if($ken eq '220049') {return 42;} #中国四国(高知)
#&DispError2($GB,"ERROR!","「不明なsoftbank」はかけないのだ!!
ここでfusianasanして県名報告してネ");
return 49;
# if(open(LX,">> HOST29.000")){print LX "$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47hiho
{
my ($remo,$ken) = @_;
if($ken eq 'west') {return 57;}
if($ken eq 'east') {return 58;}
if($ken eq 'nrm') {return 51;}
if($ken eq 'tky') {return 13;}
if($ken eq 'osk') {return 27;}
if($ken eq 'stm') {return 11;}
if($ken eq 'kwg') {return 11;}
if($ken eq 'kng') {return 14;}
if($ken eq 'ykh') {return 14;}
if($ken eq 'shg') {return 25;}
if($ken eq 'oky') {return 33;}
if($ken eq 'fks') {return 7;}
if($ken eq 'aic') {return 23;}
if($ken eq 'kgw') {return 37;}
if($ken eq 'hkd') {return 1;}
if($ken eq 'chb') {return 12;}
if($ken eq 'myg') {return 4;}
if($ken eq 'kyt') {return 26;}
if($ken eq 'gmm') {return 10;}
if($ken eq 'amr') {return 2;}
if($ken eq 'fkk') {return 40;}
if($ken eq 'mie') {return 24;}
if($ken eq 'hrs') {return 34;}
if($ken eq 'tcg') {return 9;}
if($ken eq 'ngs') {return 42;}
if($ken eq 'hyg') {return 28;}
if($ken eq 'akt') {return 5;}
if($ken eq 'szk') {return 22;}
if($ken eq 'ngt') {return 15;}
if($ken eq 'smn') {return 32;}
if($ken eq 'ymn') {return 19;}
if($ken eq 'okn') {return 47;}
if($ken eq 'fki') {return 18;}
if($ken eq 'ibr') {return 8;}
if($ken eq 'kch') {return 39;}
if($ken eq 'gif') {return 21;}
if($ken eq 'tks') {return 36;}
if($ken eq 'wky') {return 30;}
if($ken eq 'nar') {return 29;}
if($ken eq 'iwt') {return 3;}
if($ken eq 'ngn') {return 20;}
if($ken eq 'isk') {return 17;}
if($ken eq 'myz') {return 45;}
if($ken eq 'ymt') {return 6;}
if($ken eq 'saga') {return 41;}
if($ken eq 'yamaguchi') {return 35;}
if($ken eq 'oita') {return 44;}
if($ken eq 'toyama') {return 16;}
if($ken eq 'shiga') {return 25;}
if($ken eq 'kagoshima') {return 46;}
if($ken eq 'ehime') {return 38;}
if($ken eq 'kumamoto') {return 43;}
if($ken eq 'tottori') {return 31;}
#nrm1-p59.tepco.hi-ho.ne.jp(nrm)
if($ken eq 'snj') {return 13;} #
if($ken eq 'snt') {return 13;} #
if($ken eq 'wdb') {return 13;} #
if($ken eq 'hoj') {return 13;} #
if($ken eq 'edg') {return 60;} #
# if(open(LX,">> HOST29.000")){print LX "(hiho)$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47infoweb
{
my ($remo,$ken) = @_;
if($remo =~ /oyma(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 9;} #栃木県(09)
if($remo =~ /fnbs(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 12;} #千葉県(12)
if($remo =~ /nkno(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 13;} #東京都(13)
if($remo =~ /ohta(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 13;} #
if($remo =~ /ktsk(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 13;} #
if($remo =~ /hcou(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 13;} #
if($remo =~ /tkbn(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 13;} #
if($remo =~ /odwr(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 14;} #神奈川県(14)
if($remo =~ /youx(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 21;} #岐阜県(21)
if($remo =~ /ymgt(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 21;} #岐阜県(21)
if($remo =~ /hmmt(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 22;} #静岡県(22)
if($remo =~ /aksi(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 28;} #兵庫県(28)
if($remo =~ /kkgw(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 28;} #
if($remo =~ /kihn(\d+|\d+n\d+)\.catv.ppp.infoweb.ne.jp$/) {return 28;} #
if($ken =~ /\.dup$/) {return 61;}
if($ken =~ /\.do$/) {return 60;}
# if($ken =~ /catv/) {return 59;}
if($ken =~ /\.(\w+)\.nt\./) {$ken = $1;}
elsif($ken =~ /\.(\w+)\.te\./) {$ken = $1;}
elsif($ken =~ /ea([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /ac([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /tc([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /ct([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /th([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /st([a-z]+)\d+\.adsl$/) {$ken = $1;}
elsif($ken =~ /\.([a-z]+)\.fnt\.ftth$/) {$ken = $1;}
elsif($ken =~ /[a-z][a-z]([a-z]+)\d+\.adsl$/) {$ken = $1;}
if($ken =~ /air/i) {return 60;}
if($ken eq 'tkyo') {return 13;}
if($ken eq 'tckw') {return 13;}
if($ken eq 'atgi') {return 13;}
if($ken eq 'oska') {return 27;}
if($ken eq 'sitm') {return 11;}
if($ken eq 'urwa') {return 11;}
if($ken eq 'kngw') {return 14;}
if($ken eq 'ykhm') {return 14;}
if($ken eq 'siga') {return 25;}
if($ken eq 'okym') {return 33;}
if($ken eq 'fksm') {return 7;}
if($ken eq 'aich') {return 23;}
if($ken eq 'ngya') {return 23;}
if($ken eq 'kgwa') {return 37;}
if($ken eq 'tkmt') {return 37;}
if($ken eq 'ymgc') {return 35;}
if($ken eq 'hkid') {return 1;}
if($ken eq 'spro') {return 1;}
if($ken eq 'chba') {return 12;}
if($ken eq 'mygi') {return 4;}
if($ken eq 'sndi') {return 4;}
if($ken eq 'kyto') {return 26;}
if($ken eq 'gnma') {return 10;}
if($ken eq 'aomr') {return 2;}
if($ken eq 'fkok') {return 40;}
if($ken eq 'ooit') {return 44;}
if($ken eq 'miex') {return 24;}
if($ken eq 'hrsm') {return 34;}
if($ken eq 'tcgi') {return 9;}
if($ken eq 'ngsk') {return 42;}
if($ken eq 'hygo') {return 28;}
if($ken eq 'kube') {return 28;}
if($ken eq 'akta') {return 5;}
if($ken eq 'szok') {return 22;}
if($ken eq 'yizu') {return 22;}
if($ken eq 'nigt') {return 15;}
if($ken eq 'oknw') {return 47;}
if($ken eq 'fkui') {return 18;}
if($ken eq 'ibrk') {return 8;}
if($ken eq 'tyma') {return 16;}
if($ken eq 'kuch') {return 39;}
if($ken eq 'gifu') {return 21;}
if($ken eq 'tksm') {return 36;}
if($ken eq 'shga') {return 25;}
if($ken eq 'kgsm') {return 46;}
if($ken eq 'nara') {return 29;}
if($ken eq 'iwte') {return 3;}
if($ken eq 'ngno') {return 20;}
if($ken eq 'iskw') {return 17;}
if($ken eq 'knzw') {return 17;}
if($ken eq 'saga') {return 41;}
if($ken eq 'ehme') {return 38;}
if($ken eq 'kmmt') {return 43;}
if($ken eq 'ttri') {return 31;}
if($ken eq 'smne') {return 32;}
if($ken eq 'ymns') {return 19;}
if($ken eq 'wkym') {return 30;}
if($ken eq 'ymgt') {return 6;}
if($ken eq 'myzk') {return 45;}
# if(open(LX,">> HOST29.000")){print LX "$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47mesh
{
my ($remo,$ken) = @_;
if($ken eq 'tky') {return 13;}
if($ken eq 'osk') {return 27;}
if($ken eq 'stm') {return 11;}
if($ken eq 'kng') {return 14;}
if($ken eq 'sig') {return 25;}
if($ken eq 'oky') {return 33;}
if($ken eq 'fks') {return 7;}
if($ken eq 'aic') {return 23;}
if($ken eq 'kgw') {return 37;}
if($ken eq 'ygc') {return 35;}
if($ken eq 'hkd') {return 1;}
if($ken eq 'chb') {return 12;}
if($ken eq 'myg') {return 4;}
if($ken eq 'kyt') {return 26;}
if($ken eq 'gnm') {return 10;}
if($ken eq 'aom') {return 2;}
if($ken eq 'fko') {return 40;}
if($ken eq 'oit') {return 44;}
if($ken eq 'mie') {return 24;}
if($ken eq 'hrs') {return 34;}
if($ken eq 'tcg') {return 9;}
if($ken eq 'ngs') {return 42;}
if($ken eq 'hyg') {return 28;}
if($ken eq 'szo') {return 22;}
if($ken eq 'nig') {return 15;}
if($ken eq 'ymn') {return 19;}
if($ken eq 'okn') {return 47;}
if($ken eq 'iba') {return 8;}
if($ken eq 'koc') {return 39;}
if($ken eq 'gif') {return 21;}
if($ken eq 'fki') {return 18;}
if($ken eq 'tks') {return 36;}
if($ken eq 'kgs') {return 46;}
if($ken eq 'wky') {return 30;}
if($ken eq 'nra') {return 29;}
if($ken eq 'iwa') {return 3;}
if($ken eq 'ngn') {return 20;}
if($ken eq 'isk') {return 17;}
if($ken eq 'sag') {return 41;}
if($ken eq 'ygt') {return 6;}
if($ken eq 'kmm') {return 43;}
if($ken eq 'myz') {return 45;}
if($ken eq 'tym') {return 16;}
if($ken eq 'ttr') {return 31;}
if($ken eq 'aki') {return 5;}
if($ken eq 'smn') {return 32;}
if($ken eq 'shiga') {return 25;}
if($ken eq 'ehm') {return 38;}
# if(open(LX,">> HOST29.000")){print LX "(mesh)$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47zaq
{
my ($remo,$ken) = @_;
#京都府
if($remo =~ /zaq3d2e6[89a-f]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaq3dc06[c-f]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd37c8[0-5]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd37c8[67]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd37cc[0-9a-c]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd37cc[d-f]..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd38730..\.zaq.ne.jp/) {return 26;}
if($remo =~ /zaqd3873[1-7]..\.zaq.ne.jp/) {return 26;}
#兵庫県
if($remo =~ /zaq3d2e7...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d2ec[0-7]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d2ec[89a-f]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d2ef...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d738[0-9a]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d738b..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3d739...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3dc04[0-9]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3dc0(4[a-f]|5.)..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3dcd8...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3dcdb[89a]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq3dcdb[b-f]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq7d04[ab]...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaq7d04c...\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqd37c(0[89a-f]|1.)..\.zaq.ne.jp/){return 28;}
if($remo =~ /zaqd37c7[0-9a-d]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqd37c9[0-5]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqd37c9[67]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqd37c9[89ab]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqd3875[89a-f]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqdb73f[01]..\.zaq.ne.jp/) {return 28;}
if($remo =~ /zaqdb73f[2-9a-f]..\.zaq.ne.jp/) {return 28;}
#滋賀県
if($remo =~ /zaqd378b[4-7]..\.zaq.ne.jp/) {return 25;} #残りはすべて大阪府
#from whois & LogCounter(zaq.txt)
return 27;
}
sub area47sonet
{
my ($remo,$ken) = @_;
if($ken =~ /freedc$/) {return 901;}
elsif($ken =~ /ah$/) {return 901;}
elsif($ken =~ /te$/) {$ken =~ s/te$//;}
elsif($ken =~ /nt$/) {$ken =~ s/nt$//;}
elsif($ken =~ /ac$/) {$ken =~ s/ac$//;}
elsif($ken =~ /ea$/) {$ken =~ s/ea$//;}
elsif($ken =~ /us$/) {$ken =~ s/us$//;}
elsif($ken =~ /ff$/) {$ken =~ s/ff$//;}
if($ken eq 'tubems') {return 52;}
if($ken eq 'west') {return 57;}
if($ken eq 'east') {return 58;}
if($ken eq 'wpdabw') {return 60;}
if($ken eq 'tkyo') {return 13;}
if($ken eq 'toky') {return 13;}
if($ken eq 'ntky') {return 13;}
if($ken eq 'osak') {return 27;}
if($ken eq 'sitm') {return 11;}
if($ken eq 'uraw') {return 11;}
if($ken eq 'ykhm') {return 14;}
if($ken eq 'kngw') {return 14;}
if($ken eq 'siga') {return 25;}
if($ken eq 'okym') {return 33;}
if($ken eq 'fksm') {return 7;}
if($ken eq 'aici') {return 23;}
if($ken eq 'ngya') {return 23;}
if($ken eq 'kagw') {return 37;}
if($ken eq 'ymgc') {return 35;}
if($ken eq 'hkid') {return 1;}
if($ken eq 'sppr') {return 1;}
if($ken eq 'chib') {return 12;}
if($ken eq 'miyg') {return 4;}
if($ken eq 'sndi') {return 4;}
if($ken eq 'kyot') {return 26;}
if($ken eq 'gunm') {return 10;}
if($ken eq 'aomr') {return 2;}
if($ken eq 'fkok') {return 40;}
if($ken eq 'oita') {return 44;}
if($ken eq 'mie') {return 24;}
if($ken eq 'mie-') {return 24;}
if($ken eq 'hrsm') {return 34;}
if($ken eq 'tocg') {return 9;}
if($ken eq 'kobe') {return 28;}
if($ken eq 'hyog') {return 28;}
if($ken eq 'akit') {return 5;}
if($ken eq 'szok') {return 22;}
if($ken eq 'nigt') {return 15;}
if($ken eq 'ymns') {return 19;}
if($ken eq 'oknw') {return 47;}
if($ken eq 'fuki') {return 18;}
if($ken eq 'ibrk') {return 8;}
if($ken eq 'toym') {return 16;}
if($ken eq 'koci') {return 39;}
if($ken eq 'gifu') {return 21;}
if($ken eq 'tksm') {return 36;}
if($ken eq 'kgsm') {return 46;}
if($ken eq 'wkym') {return 30;}
if($ken eq 'nara') {return 29;}
if($ken eq 'iwat') {return 3;}
if($ken eq 'ngno') {return 20;}
if($ken eq 'iskw') {return 17;}
if($ken eq 'saga') {return 41;}
if($ken eq 'ymgt') {return 6;}
if($ken eq 'ehim') {return 38;}
if($ken eq 'kmmt') {return 43;}
if($ken eq 'myzk') {return 45;}
if($ken eq 'totr') {return 31;}
if($ken eq 'shiga') {return 25;}
if($ken eq 'ngsk') {return 42;}
if($ken eq 'shimane') {return 32;}
if($ken eq 'w032bw') {return 60;}
if($ken eq 'onenum') {return 61;}
if($ken eq 'tubehm') {return 72;}
# if(open(LX,">> HOST29.000")){print LX "(sonet)$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47dti
{
my ($remo,$ken) = @_;
if($ken eq 'airedge') {return 60;}
if($ken eq 'west') {return 57;}
if($ken eq 'east') {return 58;}
if($ken eq 'otemachi') {return 13;}
if($ken eq 'iidabashi') {return 13;}
if($ken eq 'tokyo') {return 13;}
if($ken eq 'tachikawa') {return 13;}
if($ken eq 'osaka') {return 27;}
if($ken eq 'ohsaka') {return 27;}
if($ken eq 'saitama') {return 11;}
if($ken eq 'soka') {return 11;}
if($ken eq 'kuki') {return 11;}
if($ken eq 'urawa') {return 11;}
if($ken eq 'kanagawa') {return 14;}
if($ken eq 'yokohama') {return 14;}
if($ken eq 'kawasaki') {return 14;}
if($ken eq 'siga') {return 25;}
if($ken eq 'otsu') {return 25;}
if($ken eq 'okayama') {return 33;}
if($ken eq 'fukusima') {return 7;}
if($ken eq 'fukushima') {return 7;}
if($ken eq 'aichi') {return 23;}
if($ken eq 'nagoya') {return 23;}
if($ken eq 'yokkaichi') {return 23;}
if($ken eq 'kagawa') {return 37;}
if($ken eq 'takamatsu') {return 37;}
if($ken eq 'yamaguchi') {return 35;}
if($ken eq 'hokkaido') {return 1;}
if($ken eq 'sapporo') {return 1;}
if($ken eq 'osaka') {return 27;}
if($ken eq 'chiba') {return 12;}
if($ken eq 'ichikawa') {return 12;}
if($ken eq 'miyagi') {return 4;}
if($ken eq 'sendai') {return 4;}
if($ken eq 'kyoto') {return 26;}
if($ken eq 'gunma') {return 10;}
if($ken eq 'maebashi') {return 10;}
if($ken eq 'aomori') {return 2;}
if($ken eq 'fukuoka') {return 40;}
if($ken eq 'kurume') {return 40;}
if($ken eq 'oita') {return 44;}
if($ken eq 'mie') {return 24;}
if($ken eq 'hiroshima') {return 34;}
if($ken eq 'hirosima') {return 34;}
if($ken eq 'tochigi') {return 9;}
if($ken eq 'totigi') {return 9;}
if($ken eq 'utsunomiya'){return 9;}
if($ken eq 'nagasaki') {return 42;}
if($ken eq 'hyogo') {return 28;}
if($ken eq 'kobe') {return 28;}
if($ken eq 'akita') {return 5;}
if($ken eq 'shizuoka') {return 22;}
if($ken eq 'niigata') {return 15;}
if($ken eq 'shimane') {return 32;}
if($ken eq 'yamanashi') {return 19;}
if($ken eq 'kofu') {return 19;}
if($ken eq 'okinawa') {return 47;}
if($ken eq 'fukui') {return 18;}
if($ken eq 'ibaraki') {return 8;}
if($ken eq 'toyama') {return 16;}
if($ken eq 'kochi') {return 39;}
if($ken eq 'gifu') {return 21;}
if($ken eq 'tokushima') {return 36;}
if($ken eq 'shiga') {return 25;}
if($ken eq 'kagoshima') {return 46;}
if($ken eq 'wakayama') {return 30;}
if($ken eq 'nara') {return 29;}
if($ken eq 'iwate') {return 3;}
if($ken eq 'nagano') {return 20;}
if($ken eq 'ishikawa') {return 17;}
if($ken eq 'kanazawa') {return 17;}
if($ken eq 'saga') {return 41;}
if($ken eq 'yamagata') {return 6;}
if($ken eq 'ehime') {return 38;}
if($ken eq 'matsuyama') {return 38;}
if($ken eq 'kumamoto') {return 43;}
if($ken eq 'miyazaki') {return 45;}
if($ken eq 'tottori') {return 31;}
# if(open(LX,">> HOST29.000")){print LX "$remo($ken)\n";close(LX);}
return 0 ;
}
sub area47odn
{
my ($GB,$remo,$ken) = @_;
if($ken =~ /^([A-Z0-9]+)[a-z]+-/) {$ken = $1;}
if($ken eq 'AH1') {return 60;} # 空
if($ken eq 'TEP') {return 51;} # 関東地方
if($ken eq 'CEP') {return 52;} # 中部地方
if($ken eq 'EAO') {return 57;} # 西日本
if($ken eq 'EAT') {return 58;} # 東日本
if($ken eq 'SAP') {return 1;} # 北海道
if($ken eq 'SOD') {return 1;} # 北海道
if($ken eq 'OKI') {return 2;} # 青森
if($ken eq 'MRN') {return 3;} # 岩手
if($ken eq 'AOB') {return 4;} # 宮城
if($ken eq 'NKD') {return 5;} # 秋田
if($ken eq 'IMZ') {return 6;} # 山形
if($ken eq 'HNZ') {return 7;} # 福島
if($ken eq 'FKH') {return 7;} # 福島
if($ken eq 'AKA') {return 8;} # 茨城
if($ken eq 'HRD') {return 9;} # 栃木
if($ken eq 'KKR') {return 10;} # 群馬
if($ken eq 'SKN') {return 11;} # 埼玉
if($ken eq 'FNA') {return 12;} # 千葉
if($ken eq 'OFS') {return 13;} # 東京
if($ken eq 'HDO') {return 14;} # 神奈川
if($ken eq 'NGN') {return 15;} # 新潟
if($ken eq 'TYN') {return 16;} # 富山
if($ken eq 'KNZ') {return 17;} # 石川
if($ken eq 'KNN') {return 17;} # 石川
if($ken eq 'FKN') {return 18;} # 福井
if($ken eq 'KFN') {return 19;} # 山梨
if($ken eq 'SYD') {return 20;} # 長野
if($ken eq 'GFN') {return 21;} # 岐阜
if($ken eq 'SDD') {return 22;} # 静岡
if($ken eq 'SSJ') {return 23;} # 愛知
if($ken eq 'YKM') {return 24;} # 三重
if($ken eq 'OTU') {return 25;} # 滋賀
if($ken eq 'KYN') {return 26;} # 京都
if($ken eq 'KYO') {return 26;} # 京都
if($ken eq 'NWT') {return 27;} # 大阪
if($ken eq 'OSA') {return 27;} # 大阪
if($ken eq 'KBM') {return 28;} # 兵庫
if($ken eq 'DAJ') {return 29;} # 奈良
if($ken eq 'WKN') {return 30;} # 和歌山
if($ken eq 'TTN') {return 31;} # 鳥取
if($ken eq 'SMN') {return 32;} # 島根
if($ken eq 'IMM') {return 33;} # 岡山
if($ken eq 'NIH') {return 34;} # 広島
if($ken eq 'YGN') {return 35;} # 山口
if($ken eq 'TKN') {return 36;} # 徳島
if($ken eq 'TMN') {return 37;} # 香川
if($ken eq 'TKH') {return 37;} # 香川
if($ken eq 'MYN') {return 38;} # 愛媛
if($ken eq 'KCN') {return 39;} # 高知
if($ken eq 'FKC') {return 40;} # 福岡
if($ken eq 'TGS') {return 41;} # 佐賀
if($ken eq 'SCO') {return 42;} # 長崎
if($ken eq 'OBY') {return 43;} # 熊本
if($ken eq 'OMC') {return 44;} # 大分
if($ken eq 'MZN') {return 45;} # 宮崎
if($ken eq 'KMI') {return 46;} # 鹿児島
if($ken eq 'YRM') {return 47;} # 沖縄
if($ken eq 'ATU') {return 61;} # ダイアルアップ
if($ken eq 'TYO') {return 61;} # ダイアルアップ
if($ken eq 'CBC') {return 61;} # ダイアルアップ
if($ken eq 'TBT') {return 61;} # ダイアルアップ
if($ken eq 'KAJ') {return 61;} # ダイアルアップ
if($ken eq 'PAX') {return 61;} # ダイアルアップ
if($ken eq 'RIF') {return 61;} # ダイアルアップ
if($ken eq 'NIG') {return 61;} # ダイアルアップ
# if(open(LX,">> HOST29.000")){print LX "(odn)$remo($ken)\n";close(LX);}
&DispError2($GB,"ERROR!","「おでん」はかけないのだ!!
ここでfusianasanして県名報告してネ");
if($ken eq 'NOT') {return 66;}
# if(open(LX,">> HOST29.000")){print LX "(odn)$remo($ken)\n";close(LX);}
return 66;
}
sub area47unetsurf
{
my ($remo,$ken) = @_;
if($ken =~ /[a-zA-Z]+-([a-z][a-z])\.[\d-]+/) {$ken = $1;}
if($ken =~ /\.at$/) {return 13;}
if($ken eq 'es') {return 58;}
if($ken eq 'os') {return 57;}
if($ken eq 'tk') {return 58;}
# if(open(LX,">> HOST29.000")){print LX "(unetsurf)$remo($ken)\n";close(LX);}
return 0;
}
sub area472iij
{
my ($remo,$ken) = @_;
if($ken =~ /[a-zA-Z]+([a-z][a-z])\./) {$ken = $1;}
# if(open(LX,">> HOST29.000")){print LX "(2iij)$remo($ken)\n";close(LX);}
return 90;
}
sub area47ac
{
my ($remo,$ken) = @_;
if($ken eq 'hokkyodai') {return 1;}
if($ken eq 'hit') {return 1;}
if($ken eq 'midorigaoka') {return 1;}
if($ken eq 'hokusei') {return 1;}
if($ken eq 'hokudai') {return 1;}
if($ken eq 'iwate-pu') {return 1;}
if($ken eq 'ichinoseki') {return 3;}
if($ken eq 'ichinoseki') {return 3;}
if($ken eq 'tohoku') {return 4;}
if($ken eq 'shokei') {return 4;}
if($ken eq 'seiwa') {return 4;}
if($ken eq 'tohoku-gakuin') {return 4;}
if($ken eq 'sendai-ct') {return 4;}
if($ken eq 'akita-nct') {return 5;}
if($ken eq 'yamagata-u') {return 6;}
if($ken eq 'u-aizu') {return 7;}
if($ken eq 'fmu') {return 7;}
if($ken eq 'tsukuba') {return 8;}
if($ken eq 'ibaraki') {return 8;}
if($ken eq 'jichi') {return 9;}
if($ken eq 'utsunomiya-u') {return 9;}
if($ken eq 'dendai') {return 11;}
if($ken eq 'saitama-med') {return 11;}
if($ken eq 'dokkyo') {return 11;}
if($ken eq 'waseda') {return 13;}
if($ken eq 'tus') {return 13;}
if($ken eq 'uec') {return 13;}
if($ken eq 'titech') {return 13;}
if($ken eq 'jec') {return 13;}
if($ken eq 'nodai') {return 13;}
if($ken eq 'tuat') {return 13;}
if($ken eq 'jikei') {return 13;}
if($ken eq 'shobi') {return 13;}
if($ken eq 'keio') {return 13;}
if($ken eq 'gakushuin') {return 13;}
if($ken eq 'neec') {return 13;}
if($ken eq 'twmu') {return 13;}
if($ken eq 'icu') {return 13;}
if($ken eq 'toho-u') {return 13;}
if($ken eq 'kokugakuin') {return 13;}
if($ken eq 'u-tokyo') {return 13;}
if($ken eq 'nihon-u') {return 13;}
if($ken eq 'shobi-u') {return 13;}
if($ken eq 'chuo-u') {return 13;}
if($ken eq 'toyo') {return 13;}
if($ken eq 'kitasato-u') {return 13;}
if($ken eq 'teikyo-u') {return 13;}
if($ken eq 'kaiyodai') {return 13;}
if($ken eq 'ynu') {return 14;}
if($ken eq 'kanagawa-u') {return 14;}
if($ken eq 'toin') {return 14;}
if($ken eq 'niigata-u') {return 15;}
if($ken eq 'nagaokaut') {return 15;}
if($ken eq 'toyama-nct') {return 16;}
if($ken eq 'jaist') {return 17;}
if($ken eq 'fukui-nct') {return 18;}
if($ken eq 'shinshu-u') {return 20;}
if($ken eq 'iamas') {return 21;}
if($ken eq 'gifu-u') {return 21;}
if($ken eq 'shizuoka') {return 22;}
if($ken eq 'numazu-ct') {return 22;}
if($ken eq 'nig') {return 22;}
if($ken eq 'u-shizuoka-ken') {return 22;}
if($ken eq 'nitech') {return 23;}
if($ken eq 'nifs') {return 23;}
if($ken eq 'tut') {return 23;}
if($ken eq 'sozo') {return 23;}
if($ken eq 'chubu') {return 23;}
if($ken eq 'nanzan-u') {return 23;}
if($ken eq 'nagoya-u') {return 23;}
if($ken eq 'ims') {return 23;}
if($ken eq 'nibb') {return 23;}
if($ken eq 'tsudagakuen') {return 24;}
if($ken eq 'mie-u') {return 24;}
if($ken eq 'toba-cmt') {return 24;}
if($ken eq 'ritsumei') {return 26;}
if($ken eq 'kpu') {return 26;}
if($ken eq 'doshisha') {return 26;}
if($ken eq 'kyoto-u') {return 26;}
if($ken eq 'kit') {return 26;}
if($ken eq 'osaka-u') {return 27;}
if($ken eq 'kwansei') {return 28;}
if($ken eq 'kyoto-u') {return 28;}
if($ken eq 'kobedenshi') {return 28;}
if($ken eq 'hyo-med') {return 28;}
if($ken eq 'nara-su') {return 29;}
if($ken eq 'wakayama-u') {return 30;}
if($ken eq 'shimane-u') {return 32;}
if($ken eq 'ous') {return 33;}
if($ken eq 'kindai') {return 33;}
if($ken eq 'hiroshima-cu') {return 34;}
if($ken eq 'it-hiroshima') {return 34;}
if($ken eq 'yamaguchi-u') {return 35;}
if($ken eq 'tokushima-u') {return 36;}
if($ken eq 'shinonome') {return 38;}
if($ken eq 'kochi-u') {return 39;}
if($ken eq 'fit') {return 40;}
if($ken eq 'kyutech') {return 40;}
if($ken eq 'fukuoka-u') {return 40;}
if($ken eq 'kyushu-u') {return 40;}
if($ken eq 'nagasaki-u') {return 41;}
if($ken eq 'kumamoto-u') {return 43;}
if($ken eq 'miyazaki-u') {return 45;}
if($ken eq 'u-ryukyu') {return 47;}
if($ken eq 'kbc') {return 47;}
# if(open(LX,">> HOST29.001")){print LX "(ac.jp)$remo($ken)\n";close(LX);}
return 0;
}
sub area47vectant
{
my ($remo,$ken) = @_;
my $we = 57 ; #e=57 w=58
if($ken =~ /^e/) {$we = 57;}
if($ken =~ /^w/) {$we = 58;}
if($ken =~ /Bas1/) {return $we;}
if($ken =~ /IFL7/) {return $we;}
if($ken =~ /AFL/) {return $we;}
if($ken =~ /BFL/) {return $we;}
if($ken =~ /BN/) {return $we;}
if($ken =~ /BS/) {return $we;}
if($ken =~ /air/) {return 60;}
if($ken =~ /[A-Z]([a-z]+)FL\d+/) {$ken = $1;}
if($ken eq 'wide') {return 69;}
return &area47dti($remo,$ken) ;
}
sub area47nttpc
{
my ($remo,$ken) = @_;
if($ken =~ /[a-z]-([a-z]+)/) {$ken = $1;}
return &area47dti($remo,$ken) ;
}
sub area47ocn
{
my ($remo,$ken) = @_ ;
$ken =~ s/\.ovcs// ;
if($ken =~ /-/) {return 69;}
return &area47dti($remo,$ken) ;
}
sub area47catv
{
my ($remo) = @_;
if($remo =~ /\.seikyou\.ne\.jp$/) {return 68;}
if($remo =~ /\.wakwak\.ne\.jp$/) {return 68;}
if($remo =~ /\.eaccess\.ne\.jp$/) {return 68;}
if($remo =~ /\.highway\.ne\.jp$/) {return 68;}
if($remo =~ /\.bit-drive\.ne\.jp$/) {return 68;}
if($remo =~ /\.pwd\.ne\.jp$/) {return 68;}
if($remo =~ /\.([a-z\d]+)\.step\.ne\.jp$/)
{
my $ken = $1 ;
if($ken =~ /c5([a-z]+)/) {$ken = $1;}
return &area47mesh($remo,$ken) ;
}
if($remo =~ /\.bbiq\.jp$/) #bbiq.jp 九州地方
{
if($remo =~ /hakata03/) {return 41;}
return 40;
}
if($remo =~ /\.ccnw\.ne\.jp$/) {return 23;} #.*.ccnw.ne.jp$ 中部ケーブルネットワーク(愛知・岐阜)
if($remo =~ /\.katch\.ne\.jp$/) {return 23;} #.*.katch.ne.jp$ KATCH-NET(愛知)
if($remo =~ /\.enat\.org$/) {return 21;} #.*.enat.org$ City.Ena'T.Org(岐阜県恵那市)
if($remo =~ /\.thn\.ne\.jp$/) {return 22;} #.*.thn.ne.jp$ THN CATVインターネットサービス(静岡)
if($remo =~ /\.kitanet\.ne\.jp$/) {return 13;} #.*.kitanet.ne.jp$ 北ネットインターネットサービス(東京都北区)
if($remo =~ /\.hot-cha\.tv$/) {return 35;} #.*.hot-cha.tv$ ほっちゃテレビ(山口県長門市)
if($remo =~ /\.across\.or\.jp$/) {return 22;} #.*.across.or.jp$ ドリームウェーブ静岡(静岡)
if($remo =~ /\.cty-net\.ne\.jp$/) {return 24;} #.*.cty-net.ne.jp$ シー・ティー・ワイ インターネット接続サービス(三重)
if($remo =~ /\.miyazaki-catv\.ne\.jp$/) {return 45;} #.*.miyazaki-catv.ne.jp$ MCN 宮崎ケーブルテレビ(宮崎)
if($remo =~ /\.tac-net\.ne\.jp$/) {return 23;} #.*.tac-net.ne.jp$ 知多半島ケーブルネットワーク(愛知)
if($remo =~ /\.orihime\.ne\.jp$/) {return 23;} #.*.orihime.ne.jp$ おりひめねっと(愛知県一宮市)
if($remo =~ /\.starcat\.ne\.jp$/) {return 23;} #.*.starcat.ne.jp$ Starcatインターネット(愛知県名古屋市)
if($remo =~ /\.nmt\.ne\.jp$/) {return 36;} #.*.nmt.ne.jp$ NMTネット(徳島)
if($remo =~ /\.tcn-catv\.ne\.jp$/) {return 13;} #.*.tcn-catv.ne.jp$ 東京ケーブルネットワーク(東京)
if($remo =~ /\.kcv\.ne\.jp$/) {return 33;} #.*.kcv.ne.jp$ ゆめネットワーク(岡山)
if($remo =~ /\.csf\.ne\.jp$/) {return 40;} #.*.csf.ne.jp$ ケーブルステーション福岡(福岡)
if($remo =~ /\.cts-net\.ne\.jp$/) {return 44;} #.*.cts-net.ne.jp$ CTSインターネットサービス(大分)
if($remo =~ /\.scn-net\.ne\.jp$/) {return 14;} #.*.scn-net.ne.jp$ 湘南ケーブルネットワーク(神奈川)
if($remo =~ /\.amigo\d?\.ne\.jp$/) {return 24;} #.*.amigo2.ne.jp$ アミーゴインターネットサービス(三重)
if($remo =~ /\.catvy\.ne\.jp$/) {return 6;} #.*.catvy.ne.jp$ ケーブルテレビ山形(山形)
if($remo =~ /\.ztv\.ne\.jp$/) {return 24;} #.*.ztv.ne.jp$ Z-LAN(三重)
if($remo =~ /\.actv\.ne\.jp$/) {return 2;} #.*.actv.ne.jp$ 青森ケーブルテレビ(青森)
if($remo =~ /\.hicat\.ne\.jp$/) {return 34;} #.*.hicat.ne.jp$ 広島シティケーブルテレビ HICAT(広島)
if($remo =~ /\.kcn\.ne\.jp$/) {return 53;} #.*.kcn.ne.jp$ KCN-Net Service(近畿)
if($remo =~ /\.itscom\.jp$/) {return 13;} #.*.itscom.jp$ イッツ・コミュニケーションズ株式会社(東京・神奈川)
if($remo =~ /\.246\.ne\.jp$/) {return 13;} #.*.246.ne.jp$ イッツ・コミュニケーションズ株式会社(東京・神奈川)
if($remo =~ /\.aikis\.or\.jp$/) {return 30;} #.*.aikis.or.jp$ あいあい紀州ネット(和歌山)
if($remo =~ /\.coara\.or\.jp$/) {return 40;} #.*.coara.or.jp$ ニューCOARA(大分・福岡)
if($remo =~ /\.kumin\.ne\.jp$/) {return 40;} #.*.kumin.ne.jp$ くーみんブロードバンド(福岡)
if($remo =~ /\.gujo-tv\.ne\.jp$/) {return 21;} #.*.gujo-tv.ne.jp$ 郡上広域連合(岐阜)
if($remo =~ /\.hcvnet.jp$/) {return 31;} #.*.hcvnet.jp$ 株式会社 コンピュータ・サービス(鳥取)
if($remo =~ /\.spacelan\.ne\.jp$/) {return 17;} #.*.spacelan.ne.jp$ 金沢ケーブルテレビネット(石川)
if($remo =~ /\.ayu\.ne\.jp$/) {return 14;} #.*.ayu.ne.jp$ 厚木伊勢原ケーブルネットワーク(神奈川)
if($remo =~ /\.cna\.ne\.jp$/) {return 5;} #.*.cna.ne.jp$ 秋田ケーブルテレビ(秋田)
if($remo =~ /\.catvnet\.ne\.jp$/) {return 54;} #.*.catvnet.ne.jp$ CATVネットワークサービス(四国)
if($remo =~ /\.m-net\.ne\.jp$/) {return 13;} #.*.m-net.ne.jp$ My TV(東京)
if($remo =~ /\.ncv\.ne\.jp$/) {return 1;} #.*.ncv.ne.jp$ NCV(北海道函館市)
if($remo =~ /\.adachi\.ne\.jp$/) {return 13;} #.*.adachi.ne.jp$ ケーブルテレビ足立(東京)
if($remo =~ /\.wac2\.net$/) {return 28;} #.*.wac2.net$ わくわくネットワーク(兵庫)
if($remo =~ /\.net3-tv\.net$/) {return 16;} #.*.net3-tv.net$ Net3 Internet(富山)
if($remo =~ /\.lcv\.ne\.jp$/) {return 20;} #.*.lcv.ne.jp$ LCV-Net(長野)
if($remo =~ /\.tontonme\.ne\.jp$/) {return 47;} #.*.tontonme.ne.jp$ とんとんみ〜(沖縄)
if($remo =~ /\.denkosekka\.ne\.jp$/) {return 51;} #.*.denkosekka.ne.jp$ 電光石火(平成電電)
if($remo =~ /\.mecha\.ne\.jp$/) {return 24;} #.*.mecha.ne.jp$ MeCha(ケーブルネット鈴鹿)
if($remo =~ /\.oninet\.ne\.jp$/) {return 33;} #.*.oninet.ne.jp$ oniネット(岡山)
if($remo =~ /\.rmc\.ne\.jp$/) {return 25;} #.*.rmc.ne.jp$ Rmcネットワーク(滋賀)
if($remo =~ /\.mco\.ne\.jp$/) {return 47;} #.*.mco.ne.jp$ ちゃんぷるネット(沖縄)
if($remo =~ /\.aitai\.ne\.jp$/) {return 23;} #.*.aitai.ne.jp$ Aitai net(愛知・岐阜)
if($remo =~ /\.ocv\.ne\.jp$/) {return 51;} #.*.ocv.ne.jp$ 小田急ケーブルテレビジョン
if($remo =~ /\.nns\.ne\.jp$/) {return 19;} #*.nns.ne.jp$ 日本ネットワークサービス(山梨)
if($remo =~ /\.cablenet\.ne\.jp$/) {return 11;} #.*.cablenet.ne.jp$ ケーブルネット埼玉
if($remo =~ /\.milare-tv\.ne\.jp$/) {return 16;} #.*.milare-tv.ne.jp$ みらーれTV(富山)
if($remo =~ /\.mni\.ne\.jp$/) {return 4;} #.*.mni.ne.jp$ ケーブルテレビ キャベツ(宮城)
if($remo =~ /\.gallery\.ne\.jp$/) {return 39;} #.*.gallery.ne.jp$ インターネットGallery(高知)
if($remo =~ /\.cans\.ne\.jp$/) {return 26;} #.*.cans.ne.jp$ ケーブルネットワークそのべ(京都)
if($remo =~ /\.ict\.ne\.jp$/) {return 24;} #.*.ict.ne.jp$ 伊賀上野ケーブルテレビ(三重)
if($remo =~ /\.ctk\.ne\.jp$/) {return 21;} #.*.ctk.ne.jp$ ケーブルテレビ可児(岐阜)
if($remo =~ /\.ucatv\.ne\.jp$/) {return 9;} #.*.ucatv.ne.jp$ 宇都宮ケーブルテレビ(栃木)
if($remo =~ /\.cncm\.ne\.jp$/) {return 42;} #.*.cncm.ne.jp$ 長崎ケーブルメディア(長崎)
if($remo =~ /\.itakita\.net$/) {return 5;} #.*.itakita.net$ 秋田県IT基盤協会
if($remo =~ /\.ogaki-tv\.ne\.jp$/) {return 21;} #.*.ogaki-tv.ne.jp$ 大垣ケーブルテレビ(岐阜)
if($remo =~ /\.t-net\.ne\.jp$/) {return 13;} #.*.t-net.ne.jp$ 多摩ケーブルネットワーク(東京)
if($remo =~ /\.fureai-ch\.ne\.jp$/) {return 34;} #.*.fureai-ch.ne.jp$ ふれあいチャンネル(広島)
if($remo =~ /\.synapse\.ne\.jp$/) {return 46;} #.*.synapse.ne.jp$ シナプス(鹿児島)
if($remo =~ /\.dokidoki\.ne\.jp$/) {return 38;} #.*.dokidoki.ne.jp$ マジカルサイト・インターネットサービス(愛媛)
if($remo =~ /\.shizuokanet\.ne\.jp$/) {return 22;} #.*.shizuokanet.ne.jp$ 静岡インターネット(静岡)
if($remo =~ /\.kyoto-inet\.or\.jp$/) {return 26;} #.*.kyoto-inet.or.jp$ 京都アイネットBB(京都)
if($remo =~ /\.wainet\.ne\.jp$/) {return 45;} #.*.wainet.ne.jp$ わいWaiネット(宮崎)
if($remo =~ /\.kcn-tv\.ne\.jp$/) {return 43;} #.*.kcn-tv.ne.jp$ 熊本ケーブルネットワーク(熊本)
if($remo =~ /\.d-b\.ne\.jp$/) {return 44;} #.*.d-b.ne.jp$ 大分合同新聞インターネット(大分)
if($remo =~ /\.parkcity\.ne\.jp$/) {return 13;} #.*.parkcity.ne.jp$ 武蔵野三鷹ケーブルテレビ(東京)
if($remo =~ /\.nirai\.ne\.jp$/) {return 47;} #.*.nirai.ne.jp$ 沖縄ケーブルネットワーク(沖縄)
if($remo =~ /\.cosmos\.ne\.jp$/) {return 47;} #.*.cosmos.ne.jp$ COSMOS NET COMMUNICATIONS(沖縄)
if($remo =~ /\.kct\.ne\.jp$/) {return 33;} #.*.kct.ne.jp$ 倉敷ケーブルテレビ(岡山)
if($remo =~ /\.me-h\.ne\.jp$/) {return 1;} #.*.me-h.ne.jp$ ME北海道ネットワークサービス(北海道)
if($remo =~ /\.asagaotv\.ne\.jp$/) {return 17;} #.*.asagaotv.ne.jp$ あさがおテレビ(石川)
if($remo =~ /\.medias\.ne\.jp$/) {return 23;} #.*.medias.ne.jp$ 知多メディアスネットワーク
if($remo =~ /\.octv\.ne\.jp$/) {return 1;} #.*.octv.ne.jp$ 帯広シティーケーブル(北海道)
if($remo =~ /\.wbs\.ne\.jp$/) {return 22;} #.*.wbs.ne.jp$ Web静岡
if($remo =~ /\.commufa\.jp$/) {return 52;} #.*.commufa.jp$ コミュファ(中部電力)
if($remo =~ /\.sni\.ne\.jp$/) {return 41;} #.*.sni.ne.jp$ 佐賀新聞・長崎新聞インターネット(佐賀・長崎)
if($remo =~ /\.netwave\.or\.jp$/) {return 54;} #.*.netwave.or.jp$ Netwaveインターネットサービス(四国)
if($remo =~ /\.mopera\.ne\.jp$/) {return 60;} #.*.mopera.ne.jp$ モペラ(FOMAの接続サービス?)
if($remo =~ /\.koalanet\.ne\.jp$/) {return 12;} #.*.koalanet.ne.jp$ コアラテレビ(千葉)
if($remo =~ /\.clovernet\.ne\.jp$/) {return 23;} #.*.clovernet.ne.jp$ クローバーネット(愛知)
if($remo =~ /\.hottv\.ne\.jp$/) {return 25;} #.*.hottv.ne.jp$ 近江八幡ケーブルネットワーク株式会社(滋賀県近江八幡市)
if($remo =~ /\.tvk\.ne\.jp$/) {return 17;} #.*.tvk.ne.jp$ テレビ小松(石川)
if($remo =~ /\.tcn\.ne\.jp$/) {return 36;} #.*.tcn.ne.jp$ 徳島ケーブルネットワーク(徳島)
if($remo =~ /\.ccv\.ne\.jp$/) {return 34;} #.*.ccv.ne.jp$ ふれあいチャンネル(広島)
if($remo =~ /\.cnc\.jp$/) {return 12;} #.*.cnc.jp$ 株式会社ケーブルネットワーク千葉
if($remo =~ /\.e-catv\.ne\.jp$/) {return 38;} #.*.e-catv.ne.jp$ 愛媛CATV(愛媛)
if($remo =~ /\.wind\.ne\.jp$/) {return 10;} #.*.wind.ne.jp$ 群馬インターネット(群馬)
if($remo =~ /\.hit-5\.net$/) {return 32;} #.*.hit-5.net$ 雲州わがとこテレビ(島根)
if($remo =~ /\.yukiguni\.net$/) {return 15;} #.*.yukiguni.net$ ゆきぐにネット(新潟)
if($remo =~ /\.kct\.ad\.jp$/) {return 33;} #.*.kct.ad.jp$ 株式会社倉敷ケーブルテレビ(岡山)
if($remo =~ /\.ictnet\.ne\.jp$/) {return 3;} #.*.ictnet.ne.jp$ 岩手ケーブルテレビジョン(岩手)
if($remo =~ /\.chikamatsu\.ne\.jp$/) {return 13;} #.*.chikamatsu.ne.jp$ PS/PLAZA 地下松(東京都千代田区)
if($remo =~ /\.miracle\.ne\.jp$/) {return 55;} #.*.miracle.ne.jp$ San-inNet(山陰地方)
if($remo =~ /\.avis\.ne\.jp$/) {return 71;} #.*.avis.ne.jp$ アヴィス(長野)
if($remo =~ /\.fcv\.ne\.jp$/) {return 30;} #.*.fcv.ne.jp$ 福岡ケーブルビジョン
if($remo =~ /\.inacatv\.ne\.jp$/) {return 20;} #.*.inacatv.ne.jp$ 伊那ケーブルテレビジョン
if($remo =~ /\.incl\.ne\.jp$/) {return 70;} #.*.incl.ne.jp$ インクル(北陸地方)
if($remo =~ /\.c-able\.ne\.jp$/) {return 35;} #.*.c-able.ne.jp$ 山口ケーブルビジョン(山口)
if($remo =~ /\.tees\.ne\.jp$/) {return 23;} #.*.tees.ne.jp$ 豊橋ケーブルネットワーク(愛知県豊橋市・田原市)
if($remo =~ /\.cty8\.com$/) {return 16;} #.*.cty8.com$ ケーブルテレビ八尾(富山)
if($remo =~ /\.bc9\.ne\.jp$/) {return 9;} #.*.bc9.ne.jp$ 鹿沼ケーブルテレビ(栃木鹿沼市)
if($remo =~ /\.cc9\.ne\.jp$/) {return 9;} #.*.cc9.ne.jp$ 栃木ケーブルテレビ(栃木・群馬)
if($remo =~ /\.cnh\.ne\.jp$/) {return 16;} #.*.cnh.ne.jp$ 氷見・羽咋ケーブルネット(富山県氷見市・羽咋市)
if($remo =~ /\.catvmics\.ne\.jp$/) {return 23;} #.*.catvmics.ne.jp$ ミクスネットワーク(愛知県岡崎市)
if($remo =~ /\.cts\.ne\.jp$/) {return 13;} #.*.cts.ne.jp$ ケーブルテレビ品川(東京都品川区)
if($remo =~ /\.tcat\.ne\.jp$/) {return 11;} #.*.tcat.ne.jp$ テプコケーブルテレビ(埼玉)
if($remo =~ /\.tcnet\.ne\.jp$/) {return 16;} #.*.tcnet.ne.jp$ 高岡ケーブルネットワーク(富山県高岡市・福岡町)
if($remo =~ /\.winknet\.ne\.jp$/) {return 28;} #.*.winknet.ne.jp$ 姫路ケーブルテレビ(兵庫県姫路市)
if($remo =~ /\.usennet\.ne\.jp$/) {return 25;} #.*.usennet.ne.jp$ 守山有線放送(滋賀県守山市)
if($remo =~ /\.ictv\.ne\.jp$/) {return 11;} #.*.ictv.ne.jp$ 入間ケーブルテレビ(埼玉県入間市)
if($remo =~ /\.otv\.ne\.jp$/) {return 10;} #.*.otv.ne.jp$ 群馬ケーブルメディア(群馬県太田市・桐生市)
if($remo =~ /\.sdx\.ne\.jp$/) {return 11;} #.*.sdx.ne.jp$ 埼玉データエクスチェンジサービス(埼玉)
if($remo =~ /\.tcv\.jp$/) {return 13;} #.*.tcv.jp$ 東京ケーブルビジョン
if($remo =~ /\.h555\.net$/) {return 28;} #.*.h555.net$ h555.net(兵庫県)
if($remo =~ /\.lan-do\.ne\.jp$/) {return 1;} #.*.lan-do.ne.jp$ 旭川ケーブルテレビ ポテト(北海道旭川市)
if($remo =~ /\.bbbn\.jp$/) {return 34;} #.*.bbbn.jp$ BBBN(広島県)
if($remo =~ /\.ctb\.ne\.jp$/) {return 44;} #.*.ctb.ne.jp$ CTBメディア(大分)
if($remo =~ /\.intsurf\.ne\.jp$/) {return 24;} #.*.intsurf.ne.jp$ イントサーフ(三重県桑名市・東員町)
if($remo =~ /\.cvk\.ne\.jp$/) {return 19;} #.*.cvk.ne.jp$ 峡西CATV(山梨県南アルプス市)
if($remo =~ /\.omn\.ne\.jp$/) {return 6;} #.*.omn.ne.jp$ ニコニコケーブルテレビジョン(山形)
if($remo =~ /\.kcv-net\.ne\.jp$/) {return 11;} #.*.kcv-net.ne.jp$ 川越ケーブルテレビ(埼玉県川越市)
if($remo =~ /\.accsnet\.ne\.jp$/) {return 8;} #.*.accsnet.ne.jp$ ACCSnet(茨城県つくば市)
if($remo =~ /\.tst\.ne\.jp$/) {return 16;} #.*.tst.ne.jp$ となみ衛星通信テレビ(富山県小矢部市・南砺市・砺波市)
if($remo =~ /\.ctt\.ne\.jp$/) {return 16;} #.*.ctt.ne.jp$ ケーブルテレビ富山(富山県富山市・舟橋村)
if($remo =~ /\.fctv\.ne\.jp$/) {return 18;} #.*.fctv.ne.jp$ 福井ケーブルテレビ(福井)
if($remo =~ /\.izu\.co\.jp$/) {return 22;} #.*.izu.co.jp$ 伊豆急ケーブルネットワーク(静岡県東部)
if($remo =~ /\.icnet\.ne\.jp$/) {return 12;} #.*.icnet.ne.jp$ いちかわケーブルネットワーク(千葉県市川市)
if($remo =~ /\.kyoto-inetbb\.jp$/) {return 26;} #.*.kyoto-inetbb.jp$ 京都アイネットBB(京都)
if($remo =~ /\.cc22\.ne\.jp$/) {return 34;} #.*.cc22.ne.jp$ ふれあいチャンネル(広島市)
if($remo =~ /\.catv296\.ne\.jp$/) {return 12;} #.*.catv296.ne.jp$ ケーブルネット296(千葉)
if($remo =~ /\.ueda\.ne\.jp$/) {return 20;} #.*.ueda.ne.jp$ 上田ケーブルビジョン(長野)
if($remo =~ /\.toshima\.ne\.jp$/) {return 13;} #.*.toshima.ne.jp$ 豊島ケーブルネットワーク(東京都豊島区)
if($remo =~ /\.ii-okinawa\.ne\.jp$/) {return 47;} #.*.ii-okinawa.ne.jp$ ii-okinawa(沖縄)
if($remo =~ /\.biwa\.ne\.jp$/) {return 25;} #.*.biwa.ne.jp$ BIWALOBE(滋賀)
if($remo =~ /\.tvkumagaya\.ne\.jp$/) {return 11;} #.*.tvkumagaya.ne.jp$ 熊谷ケーブルテレビ(埼玉県熊谷市)
if($remo =~ /\.mable\.ne\.jp$/) {return 32;} #.*.mable.ne.jp$ 山陰ケーブルビジョン(島根県松江市)
if($remo =~ /\.tamatele\.ne\.jp$/) {return 33;} #.*.tamatele.ne.jp$ 玉島テレビ(岡山県倉敷市)
if($remo =~ /\.ccnet-ai\.ne\.jp$/) {return 23;} #.*.ccnet-ai.ne.jp$ CCNet豊川局(愛知県豊川市)
if($remo =~ /\.infoaomori\.ne\.jp$/) {return 2;} #.*.infoaomori.ne.jp$ 7-dj.com(青森)
if($remo =~ /\.7-dj\.ne\.jp$/) {return 2;} #.*.infoaomori.ne.jp$ 7-dj.com(青森)
if($remo =~ /\.btvm\.ne\.jp$/) {return 46;} #.*.btvm.ne.jp$ BTVケーブルテレビジョン(鹿児島)
if($remo =~ /\.kbn\.ne\.jp$/) {return 37;} #.*.kbn.ne.jp$ 香川テレビ放送網(香川)
if($remo =~ /\.rcn\.ne\.jp$/) {return 18;} #.*.rcn.ne.jp$ menet(福井)
if($remo =~ /\.hearts\.ne\.jp$/) {return 38;} #.*.hearts.ne.jp$ HEART NET(愛媛)
if($remo =~ /\.yct\.ne\.jp$/) {return 33;} #.*.yct.ne.jp$ 矢掛放送(岡山県小田郡矢掛町)
if($remo =~ /\.c3-net\.ne\.jp$/) {return 14;} #.*.c3-net.ne.jp$ JCN港南(神奈川県横浜市)
if($remo =~ /\.ginga-net\.ne\.jp$/) {return 3;} #.*.ginga-net.ne.jp$ 北上ケーブルテレビ(岩手県北上市)
if($remo =~ /\.icn-net\.ne\.jp$/) {return 3;} #.*.icn-net.ne.jp$ 一関ケーブルネットワーク(岩手県一関市)
if($remo =~ /\.canet\.ne\.jp$/) {return 16;} #.*.canet.ne.jp$ 射水ケーブルテレビ(富山県射水市・高岡市)
if($remo =~ /\.kamakuranet\.ne\.jp$/) {return 14;} #.*.kamakuranet.ne.jp$ 鎌倉ケーブルテレビ(神奈川県鎌倉市)
if($remo =~ /\.s-cnet\.ne\.jp$/) {return 22;} #.*.s-cnet.ne.jp$ ドリームウェーブ静岡(静岡県静岡市)
if($remo =~ /\.c-marinet\.ne\.jp$/) {return 4;} #.*.c-marinet.ne.jp$ 塩釜ケーブルテレビ(宮城県塩釜市・多賀城市・利府町・七ヶ浜町)
if($remo =~ /\.himawarinet\.ne\.jp$/) {return 42;} #.*.himawarinet.ne.jp$ ひまわりてれび(長崎)
if($remo =~ /\.ccsnet\.ne\.jp$/) {return 35;} #.*.ccsnet.ne.jp$ シティーケーブル周南(山口県周南市)
if($remo =~ /\.sakura-catv\.ne\.jp$/) {return 13;} #.*.sakura-catv.ne.jp$ さくらケーブルテレビ(東京都墨田区)
if($remo =~ /\.hinocatv\.ne\.jp$/) {return 13;} #.*.hinocatv.ne.jp$ 日野ケーブルテレビ(東京都)
if($remo =~ /\.watv\.ne\.jp$/) {return 9;} #.*.watv.ne.jp$ わたらせテレビ(栃木県足利市)
if($remo =~ /\.mctv\.ne\.jp$/) {return 24;} #.*.mctv.ne.jp$ MCTV松阪ケーブルテレビ(三重県松阪市)
if($remo =~ /\.tmtv\.ne\.jp$/) {return 14;} #.*.tmtv.ne.jp$ ケーブルネットつづきの森(横浜市都筑区)
if($remo =~ /\.ttv\.ne\.jp$/) {return 13;} #.*.ttv.ne.jp$ 多摩テレビ(東京都八王子市・町田市・多摩市・稲城市)
if($remo =~ /\.sopia\.or\.jp$/) {return 8;} #.*.sopia.or.jp$ ソピアフォンス株式会社(茨城県鹿嶋市)
if($remo =~ /\.nice-tv\.jp$/) {return 16;} #.*.nice-tv.jp$ NICE TV(富山県魚津市)
if($remo =~ /\.iwamicatv\.jp$/) {return 32;} #.*.iwamicatv.jp$ 石見ケーブルビジョン(島根県浜田市・江津市)
if($remo =~ /\.cac-net\.ne\.jp$/) {return 23;} #.*.cac-net.ne.jp$ CATV愛知(愛知県半田市)
if($remo =~ /\.inforyoma\.or\.jp$/) {return 39;} #inforyoma.or.jp 高知
if($remo =~ /\.joetsu\.ne\.jp$/) {return 15;} #joetsu.ne.jp 新潟
if($remo =~ /\.cable-net\.ne\.jp$/) {return 25;} #cable-net.ne.jp 滋賀
if($remo =~ /\.icc\.ne\.jp$/) {return 14;} #icc.ne.jp 神奈川
if($remo =~ /\.bai\.ne\.jp$/) {return 28;} #bai.ne.jp 兵庫
if($remo =~ /\.people-i\.ne\.jp$/) {return 41;} #people-i.ne.jp 佐賀
if($remo =~ /\.fruits\.ne\.jp$/) {return 19;} #fruits.ne.jp 山梨
if($remo =~ /\.viplt\.ne\.jp$/) {return 70;} #viplt.ne.jp 北陸
if($remo =~ /\.taku\.ne\.jp$/) {return 41;} #taku.ne.jp 佐賀
if($remo =~ /\.htv-net\.ne\.jp$/) {return 2;} #htv-netne.jp 青森
if($remo =~ /\.gol\.ne\.jp$/) {return 68;} #'gol.ne.jp'
if($remo =~ /\.kinet-tv\.ne\.jp$/) {return 26;} #'kinet-tv.ne.jp'京都
if($remo =~ /\.cyberbb\.ne\.jp$/) {return 68;} #'cyberbb.ne.jp'
if($remo =~ /\.tribe\.ne\.jp$/) {return 68;} #'tribe.ne.jp'
if($remo =~ /\.janis\.or\.jp$/) {return 20;} #janis.or.jp(長野)
if($remo =~ /\.valley\.ne\.jp$/) {return 20;} #valley.ne.jp(長野)
if($remo =~ /\.tnc\.ne\.jp$/) {return 22;} #tnc.ne.jp 静岡
if($remo =~ /\.tokai\.or\.jp$/) {return 22;} #tokai.or.jp 静岡
if($remo =~ /\.chukai\.ne\.jp$/) {return 31;} #chukai.ne.jp 鳥取
if($remo =~ /\.nasicnet\.ne\.jp$/) {return 27;} #nasicnet.ne.jp 大阪
if($remo =~ /\.namikata\.ne\.jp$/) {return 38;} #namikata.ne.jp 愛媛
if($remo =~ /\.bunbun\.ne\.jp$/) {return 41;} #bunbun.ne.jp 佐賀
if($remo =~ /\.harenet\.ne\.jp$/) {return 33;} #harenet.ne.jp 岡山
if($remo =~ /\.yomogi\.or\.jp$/) {return 9;} #yomogi.or.jp 栃木
if($remo =~ /\.ttn\.ne\.jp$/) {return 18;} #ttn.ne.jp 福井
if($remo =~ /\.rosenet\.ne\.jp$/) {return 13;} #rosenet.ne.jp 東京
if($remo =~ /\.ctktv\.ne\.jp$/) {return 14;} #ctktv.ne.jp 神奈川
if($remo =~ /\.gctv\.ne\.jp$/) {return 23;} #gctv.ne.jp 名古屋
if($remo =~ /\.kamon\.ne\.jp$/) {return 34;} #kamon.ne.jp 広島
if($remo =~ /\.canvas\.ne\.jp$/) {return 68;} #canvas.ne.jp 長屋
if($remo =~ /\.i-chubu\.ne\.jp$/) {return 52;} #i-chubu.ne.jp 中部
if($remo =~ /\.oct-net\.ne\.jp$/) {return 44;} #oct-net.ne.jp 大分
if($remo =~ /\.megax\.ne\.jp$/) {return 56;} #megax.ne.jp 九州
if($remo =~ /\.icntv\.ne\.jp$/) {return 12;} #icntv.ne.jp 千葉
if($remo =~ /\.cyberhome\.ne\.jp$/) {return 68;} #cyberhome.ne.jp 長屋
if($remo =~ /\.pcsitebrowser\.ne\.jp$/) {return 60;} #pcsitebrowser.ne.jp 空
if($remo =~ /\.nava21\.ne\.jp$/) {return 24;} #nava21.ne.jp 三重
if($remo =~ /\.catv-mic\.ne\.jp$/) {return 3;} #catv-mic.ne.jp 岩手
if($remo =~ /\.edit\.ne\.jp$/) {return 13;} #edit.ne.jp 東京
if($remo =~ /\.mto\.ne\.jp$/) {return 33;} #mto.ne.jp 岡山
if($remo =~ /\.seaple\.ne\.jp$/) {return 12;} #seaple.ne.jp 千葉
if($remo =~ /\.firstserver\.ne\.jp$/) {return 27;} #firstserver.ne.jp 大阪
if($remo =~ /\.anc-tv\.ne\.jp$/) {return 20;} #.anc-tv.ne.jp 長野県 20
if($remo =~ /\.attmil\.ne\.jp$/) {return 68;} #.attmil.ne.jp
if($remo =~ /\.attnet\.ne\.jp$/) {return 68;} #.attnet.ne.jp
if($remo =~ /\.bias\.ne\.jp$/) {return 68;} #.bias.ne.jp ホスティングサービス?
if($remo =~ /\.bb-west\.ne\.jp$/) {return 57;} #.bb-west.ne.jp 関西 中部 九州
if($remo =~ /\.cableone\.ne\.jp$/) {return 68;} #.cableone.ne.jp 佐賀県 41
if($remo =~ /\.dsnw\.ne\.jp$/) {return 41;} #.dsnw.ne.jp 全国区 都道府県別可能か?
if($remo =~ /\.eagle-net\.ne\.jp$/) {return 17;} #.eagle-net.ne.jp 石川県 17
if($remo =~ /\.eastcom\.ne\.jp$/) {return 12;} #.eastcom.ne.jp 千葉県 12
if($remo =~ /\.icn-tv\.ne\.jp$/) {return 35;} #.icn-tv.ne.jp 山口県 35
if($remo =~ /\.em-net\.ne\.jp$/) {return 68;} #.em-net.ne.jp 全国区
if($remo =~ /\.hachigamenet\.ne\.jp$/) {return 41;} #.hachigamenet.ne.jp 佐賀県
if($remo =~ /\.hagakure\.ne\.jp$/) {return 41;} #.hagakure.ne.jp 佐賀県
if($remo =~ /\.hal\.ne\.jp$/) {return 68;} #.hal.ne.jp 全国区
if($remo =~ /\.i-younet\.ne\.jp$/) {return 22;} #.i-younet.ne.jp 静岡県
if($remo =~ /\.ip-link\.ne\.jp$/) {return 51;} #.ip-link.ne.jp 関東地方
if($remo =~ /\.iprevolution\.ne\.jp$/) {return 68;} #.iprevolution.ne.jp 全国区
if($remo =~ /\.ium\.ne\.jp$/) {return 13;} #.ium.ne.jp 串っぽい(東京)
if($remo =~ /\.ktv\.ne\.jp$/) {return 10;} #.ktv.ne.jp 群馬県
if($remo =~ /\.matsumoto\.ne\.jp$/) {return 20;} #.matsumoto.ne.jp 長野県
if($remo =~ /\.nsk\.ne\.jp$/) {return 71;} #.nsk.ne.jp 富山、福井、石川
if($remo =~ /\.pikara\.ne\.jp$/) {return 14;} #.pikara.ne.jp 四国
if($remo =~ /\.raidway\.ne\.jp$/) {return 68;} #.raidway.ne.jp 神奈川
if($remo =~ /\.rnac\.ne\.jp$/) {return 5;} #.rnac.ne.jp 秋田・岩手
if($remo =~ /\.rurbannet\.ne\.jp$/) {return 12;} #.rurbannet.ne.jp 千葉
if($remo =~ /\.sensyu\.ne\.jp$/) {return 27;} #.sensyu.ne.jp 大阪
if($remo =~ /\.speednet\.ne\.jp$/) {return 68;} #.speednet.ne.jp 東京
if($remo =~ /\.tctv\.ne\.jp$/) {return 13;} #.tctv.ne.jp 東京
if($remo =~ /\.ttmy\.ne\.jp$/) {return 14;} #.ttmy.ne.jp 神奈川
if($remo =~ /\.tvm\.ne\.jp$/) {return 20;} #.tvm.ne.jp 長野
if($remo =~ /\.urban\.ne\.jp$/) {return 68;} #.urban.ne.jp
if($remo =~ /\.goennet\.ne\.jp$/) {return 32;} #.goennet.ne.jp 島根
if($remo =~ /\.ictweb\.ne\.jp$/) {return 47;} #.ictweb.ne.jp 沖縄
if($remo =~ /\.tns\.ne\.jp$/) {return 68;} #.tns.ne.jp トヨタ自動車関連 全国区
if($remo =~ /\.warabi\.ne\.jp$/) {return 11;} #.warabi.ne.jp 埼玉
if($remo =~ /\.stnet\.ne\.jp$/) {return 68;} #.stnet.ne.jp 全国 (フレッツ)
if($remo =~ /\.bmobile\.ne\.jp$/) {return 60;} #.bmobile.ne.jp 全国 (PHS)
if($remo =~ /\.meon\.ne\.jp$/) {return 55;} #.meon.ne.jp 山口 岡山県・鳥取県
if($remo =~ /\.hinanet\.ne\.jp$/) {return 6;} #.hinanet.ne.jp 山形
if($remo =~ /\.nima-cho\.ne\.jp$/) {return 32;} #.nima-cho.ne.jp 島根
if($remo =~ /\.nus\.ne\.jp$/) {return 19;} #.nus.ne.jp 山梨
if($remo =~ /\.tv-naruto\.ne\.jp$/) {return 36;} #.tv-naruto.ne.jp 徳島
if($remo =~ /\.access-internet\.ne\.jp$/) {return 60;} #.access-internet.ne.jp ソフトバンクモバイルのサービス
if($remo =~ /\.cat-v\.ne\.jp$/) {return 4;} #.cat-v.ne.jp 宮城
if($remo =~ /\.mct\.ne\.jp$/) {return 46;} #.mct.ne.jp 鹿児島
if($remo =~ /\.iam\.ne\.jp$/) {return 68;} #.iam.ne.jp
if($remo =~ /\.arena\.ne\.jp$/) {return 68;} #.arena.ne.jp
if($remo =~ /\.comcast\.net$/) {return 80;} #.comcast.net 米国
if($remo =~ /\.cilas\.net$/) {return 68;} #.cilas.net 全国マンション
if($remo =~ /\.fiberbit\.net$/) {return 68;} #.fiberbit.net 全国
if($remo =~ /\.hawaiiantel\.net$/) {return 80;} #.hawaiiantel.net アメリカ ハワイ
if($remo =~ /\.hinet\.net$/) {return 68;} #.hinet.net 台湾
if($remo =~ /\.imouto\.net$/) {return 48;} #.imouto.net 全国
if($remo =~ /\.isao\.net$/) {return 68;} #.isao.net 地域別可能?
if($remo =~ /\.mediatti\.net$/) {return 68;} #.mediatti.net catv 全国
if($remo =~ /\.solteria\.net$/) {return 68;} #.solteria.net IP-VPNサービス ソフトバンクテレコム系
if($remo =~ /\.zero-isp\.net$/i) {return 68;} #.zero-isp.net 全国・地域特定不能
if($remo =~ /\.ibara\.ne\.jp$/) {return 33;} #.ibara.ne.jp 岡山
if($remo =~ /\.rak-rak\.ne\.jp$/) {return 52;} #.rak-rak.ne.jp 中部地方
if($remo =~ /\.cypress\.ne\.jp$/) {return 30;} #.cypress.ne.jp 和歌山
if($remo =~ /\.seiryu\.ne\.jp$/) {return 21;} #.seiryu.ne.jp 岐阜県
if($remo =~ /\.wings\.ne\.jp$/) {return 68;} #.wings.ne.jp 全国
if($remo =~ /\.jyaken\.ne\.jp$/) {return 34;} #.jyaken.ne.jp 広島
if($remo =~ /\.bb4u\.ne\.jp$/) {return 68;} #.bb4u.ne.jp 全国 マンション
if($remo =~ /\.n-cube\.ne\.jp$/) {return 68;} #.n-cube.ne.jp 全国
if($remo =~ /\.ont\.ne\.jp$/) {return 5;} #.ont.ne.jp 秋田県
if($remo =~ /\.awaikeda\.ne\.jp$/) {return 36;} #.awaikeda.net 徳島
if($remo =~ /\.ccjnet\.ne\.jp$/) {return 34;} #.ccjnet.ne.jp 広島
if($remo =~ /\.hotspot\.ne\.jp$/) {return 60;} #.hotspot.ne.jp ホットスポット
if($remo =~ /\.brew\.ne\.jp$/) {return 60;} #.brew.ne.jp ezwebのフルブラウザ
if($remo =~ /\.openmobile\.ne\.jp$/) {return 68;} #.openmobile.ne.jp(全国)ソフトバンクモバイル?
if($remo =~ /\.jet\.ne\.jp$/) {return 58;} #.jet.ne.jp(東日本)
if($remo =~ /\.icv\.ne\.jp$/) {return 32;} #.icv.ne.jp(島根)
if($remo =~ /\.kagacable\.ne\.jp$/) {return 17;} #.kagacable.ne.jp(石川)
if($remo =~ /\.icv-net\.ne\.jp$/) {return 42;} #.icv-net.ne.jp(長崎)
if($remo =~ /\.izumo\.ne\.jp$/) {return 32;} #.izumo.ne.jp(島根)
if($remo =~ /\.ch-you\.ne\.jp$/) {return 20;} #.ch-you.ne.jp(長野)
if($remo =~ /\.hotcn\.ne\.jp$/) {return 1;} #.hotcn.ne.jp(北海道)
if($remo =~ /\.nct\.ne\.jp$/) {return 7;} #.nct.ne.jp(福島)
if($remo =~ /\.otc\.ne\.jp$/) {return 47;} #.otc.ne.jp(沖縄)
if($remo =~ /\.shawcable\.net$/) {return 81;} #.shawcable.net(カナダ)
if($remo =~ /\.verizon\.net$/) {return 80;} #.verizon.net(アメリカ)
if($remo =~ /\.i-products\.net$/) {return 68;} #.i-products.net(全国)ibisBrowser?
if($remo =~ /\.awaikeda\.net$/) {return 36;} #.awaikeda.net(徳島)
if($remo =~ /\.bitcat\.net$/) {return 51;} #.bitcat.net(bitcatは三井不動産マンション向けサービス→ライブドアに吸収合併で東京・神奈川・埼玉かなと思います)
if($remo =~ /\.Level3\.net$/) {return 80;} #.Level3.net(アメリカ)
if($remo =~ /\.edu$/) {return 80;} #.edu(アメリカ)
if($remo =~ /\.awacco\.ne\.jp$/) {return 36;} #.awacco.ne.jp(徳島)
if($remo =~ /\.ccnetmie\.ne\.jp$/) {return 24;} #.ccnetmie.ne.jp(三重)
if($remo =~ /\.ciaotv\.ne\.jp$/) {return 24;} #.ciaotv.ne.jp(三重)
if($remo =~ /\.firnet\.ne\.jp$/) {return 43;} #.firnet.ne.jp(熊本)
if($remo =~ /\.fnj\.ne\.jp$/) {return 68;} #.fnj.ne.jp(全国)
if($remo =~ /\.haginet\.ne\.jp$/) {return 35;} #.haginet.ne.jp(山口)
if($remo =~ /\.i-berry\.ne\.jp$/) {return 9;} #.i-berry.ne.jp(栃木)
if($remo =~ /\.i-yume\.ne\.jp$/) {return 32;} #.i-yume.ne.jp(島根)
if($remo =~ /\.icknet\.ne\.jp$/) {return 38;} #.icknet.ne.jp(愛媛)
if($remo =~ /\.infoeddy\.ne\.jp$/) {return 57;} #.infoeddy.ne.jp(西日本)
if($remo =~ /\.jctv\.ne\.jp$/) {return 36;} #.jctv.ne.jp 徳島
if($remo =~ /\.jway\.ne\.jp$/) {return 8;} #.jway.ne.jp 茨城
if($remo =~ /\.kcb-net\.ne\.jp$/) {return 39;} #.kcb-net.ne.jp 高知
if($remo =~ /\.kctvnet\.ne\.jp$/) {return 1;} #.kctvnet.ne.jp 北海道
if($remo =~ /\.kkm\.ne\.jp$/) {return 32;} #.kkm.ne.jp 島根
if($remo =~ /\.nkoutokuji\.ne\.jp$/) {return 46;} #.koutokuji.ne.jp 鹿児島
if($remo =~ /\.kyt-net\.ne\.jp$/) {return 26;} #.kyt-net.ne.jp 京都
if($remo =~ /\.kvision\.ne\.jp$/) {return 35;} #.kvision.ne.jp 山口
if($remo =~ /\.maotv\.ne\.jp$/) {return 22;} #.maotv.ne.jp 静岡
if($remo =~ /\.mcbnet\.ne\.jp$/) {return 37;} #.mcbnet.ne.jp 香川
if($remo =~ /\.nanmoku\.ne\.jp$/) {return 10;} #.nanmoku.ne.jp(群馬)
if($remo =~ /\.nct9\.ne\.jp$/) {return 15;} #.nct9.ne.jp(新潟)
if($remo =~ /\.netfour\.ne\.jp$/) {return 41;} #.netfour.ne.jp(佐賀)
if($remo =~ /\.nkansai\.ne\.jp$/) {return 57;} #.nkansai.ne.jp(西日本)
if($remo =~ /\.octp-net\.ne\.jp$/) {return 42;} #.octp-net.ne.jp(長崎)
if($remo =~ /\.okuizumo\.ne\.jp$/) {return 32;} #.okuizumo.ne.jp(島根)
if($remo =~ /\.pcm\.ne\.jp$/) {return 25;} #.pcm.ne.jp(滋賀)
if($remo =~ /\.qtnet\.ne\.jp$/) {return 56;} #.qtnet.ne.jp(九州地方)
if($remo =~ /\.ryucom\.ne\.jp$/) {return 47;} #.ryucom.ne.jp(沖縄)
if($remo =~ /\.sakura\.ne\.jp$/) {return 68;} #.sakura.ne.jp(レンタルサーバ)
if($remo =~ /\.sanuki\.ne\.jp$/) {return 37;} #.sanuki.ne.jp(香川)
if($remo =~ /\.scatv\.ne\.jp$/) {return 39;} #.scatv.ne.jp(高知)
if($remo =~ /\.shiojiri\.ne\.jp$/) {return 20;} #.shiojiri.ne.jp(長野)
if($remo =~ /\.snowman\.ne\.jp$/) {return 1;} #.snowman.ne.jp(北海道)
if($remo =~ /\.sub\.ne\.jp$/) {return 68;} #.sub.ne.jp(全国)dti法人向け
if($remo =~ /\.tvt\.ne\.jp$/) {return 33;} #.tvt.ne.jp(岡山)
if($remo =~ /\.webone\.ne\.jp$/) {return 1;} #.webone.ne.jp(北海道)
if($remo =~ /\.yappo\.ne\.jp$/) {return 68;} #.yappo.ne.jp(全国)ケータイゲートウェイサービスbydocomo
if($remo =~ /\.leo-net\.jp$/) {return 67;} #.leo-net.jp
if($remo =~ /\.bb-niigata\.jp$/) {return 15;} #.bb-niigata.jp(新潟)
if($remo =~ /\.lbdsl\.net$/) {return 80;} #.lbdsl.net アメリカ
if($remo =~ /\.cox\.net$/) {return 80;} #.cox.net アメリカ
if($remo =~ /\.vrtc\.net$/) {return 21;} #.vrtc.net 岐阜県恵那市岩村町
if($remo =~ /\.pacbell\.net$/) {return 80;} #.pacbell.net アメリカ
if($remo =~ /\.iowatelecom\.net$/) {return 80;} #.iowatelecom.net アメリカ
if($remo =~ /\.ms246\.net$/) {return 13;} #.ms246.net 東京・神奈川
if($remo =~ /\.gujocity\.net$/) {return 21;} #.gujocity.net 岐阜県郡上八幡
if($remo =~ /\.gru\.net$/) {return 80;} #.gru.net アメリカ
if($remo =~ /\.ovh\.net$/) {return 80;} #.ovh.net フランス
if($remo =~ /\.axelmark\.net$/) {return 68;} #.axelmark.net sv0134.dc01.axel
if($remo =~ /\.bitcat\.net$/) {return 68;} #.bitcat.net(全国マンション?)
if($remo =~ /\.dsl\.net$/) {return 80;} #.dsl.net(アメリカ)
if($remo =~ /\.e-awa\.net$/) {return 36;} #.e-awa.net(徳島)
if($remo =~ /\.e-nt\.net$/) {return 80;} #.e-nt.net(アメリカ)
if($remo =~ /\.proxad\.net$/) {return 80;} #.proxad.net(フランス)
if($remo =~ /\.arcor-ip\.net$/) {return 80;} #.arcor-ip.net(ドイツ)
if($remo =~ /\.fastres\.net$/) {return 80;} #.fastres.net(イタリア)
if($remo =~ /\.t-dialin\.net$/) {return 80;} #.t-dialin.net(ドイツ)
if($remo =~ /\.nameservices\.net$/) {return 80;} #.nameservices.net(アメリカ)
if($remo =~ /\.sbcglobal\.net$/) {return 80;} #.sbcglobal.net(アメリカ)
if($remo =~ /\.fctv-net\.net$/) {return 42;} #.fctv-net.jp(長崎)
if($remo =~ /\.kwins\.net$/) {return 60;} #.kwins.net(モバイル)
if($remo =~ /\.ycix\.net$/) {return 19;} #.ycix.net(山梨)
if($remo =~ /\.nasicnet\.com$/) {return 68;} #.nasicnet.com(全国マンション)
if($remo =~ /\.xiando\.com$/) {return 68;} #.xiando.com(海外セイシェル)
if($remo =~ /\.george24\.com$/) {return 68;} #.george24.com(全国マンション)
if($remo =~ /\.kaga-tv\.com$/) {return 17;} #.kaga-tv.com(石川)
if($remo =~ /\.takamori\.ne\.jp$/) {return 20;} #.takamori.ne.jp(長野)
if($remo =~ /\.hctv\.ne\.jp$/) {return 11;} #.hctv.ne.jp(埼玉)
if($remo =~ /\.dcn\.ne\.jp$/) {return 51;} #.dcn.ne.jp(関東地方)
if($remo =~ /\.icn\.ne\.jp$/) {return 15;} #.icn.ne.jp(新潟)
if($remo =~ /\.au-net\.ne\.jp$/) {return 68;} #.au-net.ne.jp(全国)
if($remo =~ /\.knc\.ne\.jp$/) {return 1;} #.knc.ne.jp(北海道)
if($remo =~ /\.coralnet\.or\.jp$/) {return 70;} #.coralnet.or.jp(北陸)
if($remo =~ /\.mitene\.or\.jp$/) {return 68;} #.mitene.or.jp(全国)
if($remo =~ /\.din\.or\.jp$/) {return 68;} #.din.or.jp(全国)
if($remo =~ /\.zoot\.jp$/) {return 68;} #.zoot.jp 全国
if($remo =~ /\.gmo-access\.jp$/) {return 68;} #.gmo-access.jp 全国
if($remo =~ /\.dsn\.jp$/) {return 68;} #.dsn.jp 全国
if($remo =~ /\.withe\.ne\.jp$/) {return 68;} #.withe.ne.jp マンション
if($remo =~ /\.supercsi\.jp$/) {return 72;} #.supercsi.jp 中国地方?(四国も)
if($remo =~ /\.banban\.jp$/) {return 28;} #.banban.jp(兵庫)
if($remo =~ /\.viplt\.ne\.jp$/) {return 71;} #.viplt.ne.jp 北陸中心だけどフレッツの範囲は西日本
if($remo =~ /\.iwami\.or\.jp$/) {return 28;} #.iwami.or.jp
if($remo =~ /\.optonline\.net$/) {return 28;} #.optonline.net
if($remo =~ /\.zakkaz\.ne\.jp$/) {return 28;} #.zakkaz.ne.jp
if($remo =~ /\.katsunuma\.ne\.jp$/) {return 28;} #.katsunuma.ne.jp
if($remo =~ /\.tgn\.or\.jp$/) {return 28;} #.tgn.or.jp
#.voice-factory.net
#.info.net
#.speakeasy.net
#.kagoya.net
#.qwest.net
#.ksp.or.jp
#.sala.or.jp
#.rim.or.jp
#.fureai.or.jp
#.fitweb.or.jp
#.ose.ne.jp
#.tocn.ne.jp
#.myt.ne.jp
#.hibikino.ne.jp
#.speedway.ne.jp
#.kamitv.ne.jp
#.chun2.ne.jp
#.inetpia.ne.jp
#.satsuma.ne.jp
#.aso.ne.jp
#.kiso.ne.jp
#.gotemba.ne.jp
#CCCCC
#'50東北地方','51関東地方','52中部地方','53関西地方','54四国地方','55中国地方','56九州地方','57西日本','58東日本','',
my $ken = ''; #←このブロックで定義されてない
if($remo =~ /\.ezweb\.ne\.jp$/) {return 60;}
if($remo =~ /\.enjoy\.ne\.jp$/) {return 0;}
# if($remo =~ /\.net$/) {if(open(LX,">> HOST29.000")){print LX "(ne.jp)$remo($ken)\n";close(LX);}}
# if($remo =~ /\.ne\.jp$/) {if(open(LX,">> HOST29.000")){print LX "(ne.jp)$remo($ken)\n";close(LX);}}
# if($remo =~ /\.go\.jp$/) {if(open(LX,">> HOST29.000")){print LX "(ne.jp)$remo($ken)\n";close(LX);}}
# if($remo =~ /\.or\.jp$/) {if(open(LX,">> HOST29.000")){print LX "(ne.jp)$remo($ken)\n";close(LX);}}
#{if(open(LX,">> HOST29.000")){print LX "(?????)$remo($ken)\n";close(LX);}}
return 67 ;
}
#############################################################################
# スレつぶし撃退(バイバイさるさん)
#############################################################################
sub bybySaruON
{
my ($GB) = @_ ;
if($ENV{'SERVER_NAME'} =~ /hayabusa/) {return 0;}
if($GB->{FORM}->{bbs} eq 'goki') {return 1;}
#return 0;
if($GB->{FORM}->{bbs} eq 'doujin') {return 0;}
if($GB->{FORM}->{bbs} eq 'dataroom') {return 0;}
if($ENV{'SERVER_NAME'} =~ /qb/) {return 0;}
# if($ENV{'SERVER_NAME'} =~ /bbspink/) {return 0;}
if($GB->{FORM}->{bbs} eq 'news4viptasu') {return 0;}
# if($GB->{FORM}->{bbs} eq 'campus') {return 0;}
#return 1;
if($GB->{FORM}->{bbs} eq 'aastory') {return 0;}
if($GB->{FORM}->{bbs} eq 'aasaloon') {return 0;}
if($GB->{FORM}->{bbs} eq 'nida') {return 0;}
if($GB->{FORM}->{bbs} eq 'mona') {return 0;}
if($GB->{FORM}->{bbs} eq 'kao') {return 0;}
if($GB->{FORM}->{bbs} eq 'nanminhis') {return 0;}
if($GB->{FORM}->{bbs} eq 'eroparo') {return 0;}
if($GB->{FORM}->{bbs} eq 'intro') {return 0;}
if($GB->{FORM}->{bbs} eq 'warhis') {return 0;}
if($GB->{FORM}->{bbs} eq 'kitchen') {return 0;}
if($GB->{FORM}->{bbs} eq 'ume') {return 0;}
if($GB->{FORM}->{bbs} eq 'mog2') {return 0;}
if($GB->{FORM}->{bbs} eq 'liveanime') {return 0;}
return 1;
if($GB->{FORM}->{bbs} eq 'operate') {return 1;}
return 0;
if($GB->{FORM}->{bbs} eq 'news4vip') {return 1;}
if($GB->{FORM}->{bbs} eq 'morningcoffee') {return 1;}
if($GB->{FORM}->{bbs} eq 'ana') {return 1;}
if($GB->{FORM}->{bbs} eq 'doujin') {return 1;}
if($GB->{FORM}->{bbs} eq 'morningcoffee') {return 1;}
return 0;
if($GB->{FORM}->{bbs} eq 'wcomic') {return 1;}
if($GB->{FORM}->{bbs} eq 'kouri') {return 1;}
if($ENV{'SERVER_NAME'} =~ /ex/) {return 1;}
if($ENV{'SERVER_NAME'} =~ /game/) {return 1;}
return 0 ;
}
sub bybySaru
{
my ($GB) = @_ ;
local $_ ;
my $dfile = $GB->{DATPATH} . $GB->{FORM}->{'key'} . '.dat';
my $prsize = IsSnowmanServer == BBSD->{REMOTE}
? ($_ = bbsd($dfile, 'getfilesize', 'nolog')) !~ /\D/ ? $_ : 0
: ($_ = stat($dfile)) ? $_->size : 0;
#if(open(UUU,">> loglog.cgi")){print UUU "$dfile=$prsize\n";close(UUU);}
if($prsize < 2048*20) {return 0;}
if(!bybySaruON($GB))
{
$GB->{version} .= " +ByeSaru=OFF";
return 0;
}
else
{
;
$GB->{version} .= " +ByeSaru=ON";
}
#★はスルー
if($GB->{CAP}) {return 0;}
#●はスルー
# if($GB->{MARU}) {return 0;}
#株主優待はスルー
if($GB->{KABUU}) {return 0;}
if($GB->{KABUUP}) {return 0;}
my $kaimadeOK = 10 ; #M回までok
my $kaiChu = 18 ; #N回中 ただし毎時クリアされます。
my $host = $ENV{'REMOTE_ADDR'} ; #IP
if($GB->{P22CH}) {$host = $GB->{HOST2} ;} #IP from p2
$host =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
$host = "$1.$2.$3" ;
if($GB->{KEITAI}) {$host = $GB->{IDNOTANE};} #携帯固有番号
my $remo = $GB->{HOST29}; #いわゆるリモホ
#p57b2fd.szoknt01.ap.so-net.ne.jp
if($remo =~ /\.(\S+\.ap\.so-net\.ne\.jp)/)
{
$host = $1 ;
$host =~ s/\d/\#/g ;
#if(open(UUU,">> loglog.cgi")){print UUU "$host\n";close(UUU);}
}
#p7042-adsau04sappo2-acca.hokkaido. .ne.jp
if($remo =~ /\S+-(\S+\d+\S+\S+\.\S+\.ocn\.ne\.jp)/)
{
$host = $1 ;
$host =~ s/\d/\#/g ;
#if(open(UUU,">> loglog.cgi")){print UUU "$host\n";close(UUU);}
}
# 雪だるまはするー
if($ENV{SERVER_NAME} =~ /^live2[34]\./) {return 0;}
# live系はするー
# if($ENV{'SERVER_NAME'} !~ /live/) {return 0;}
# if($ENV{'SERVER_NAME'} !~ /ex15/) {return 0;}
# if($ENV{'SERVER_NAME'} !~ /ex16/) {return 0;}
my ($saruPath, @saruList, %kai);
if(IsSnowmanServer)
{
# 引っかかった場合のみその回数 (それ以外 0) が返る
# age は毎時一斉クリアの挙動にすべく調整
$kai{$host} = bbsd($GB->{FORM}{bbs}, 'chkthrtimecount', $GB->{FORM}{key}, $GB->{NOWTIME} % 3600, $kaiChu, $kaimadeOK + 1, $host, 'nolog');
# タイムアウト等エラーの場合はスキップ
$kai{$host} = 0 if($kai{$host} =~ /\D/);
}
else
{
# $saruPath = "./book/$GB->{FORM}->{bbs}/";
$saruPath = "$FOX->{BOOK}/book/$GB->{FORM}->{bbs}/";
mkdir($saruPath, 0777) ;
$saruPath .= $GB->{FORM}->{key} ;
$saruPath .= '.cgi' ;
@saruList = ();
if(open(SARU, $saruPath))
{
@saruList = ;
close(SARU) ;
}
%kai = () ;
foreach my $see (@saruList)
{
chomp($see) ;
$kai{$see} ++ ;
}
$kai{$host} ++ ;
}
if(!$GB->{CAP} && !$GB->{MARU} && $kai{$host} > $kaimadeOK)
{
&DispError2($GB,"ERROR!","やはり貴方は投稿しすぎです。バイバイさるさん。
合言葉=好きな車は?");
}
# $GB->{FORM}->{'MESSAGE'} .= "
$kai{$host}";
if(!IsSnowmanServer)
{
if(!open(SARU,"> $saruPath")) {return 0;}
print SARU "$host\n";
my $ccc = 0;
foreach my $see (@saruList)
{
chomp($see) ;
print SARU "$see\n";
$ccc ++ ;
if($ccc > $kaiChu) {last;}
}
close(SARU) ;
}
return 0 ;
}
########################################################################
# 名無しの処理(地震関連板)
########################################################################
sub EQfromWhereON
{
my ($GB) = @_;
# if($GB->{FORM}->{bbs} eq 'news') {return 1;}
if($GB->{FORM}->{bbs} eq 'eq') {return 1;}
if($GB->{FORM}->{bbs} eq 'eqplus') {return 1;}
if($GB->{FORM}->{bbs} eq 'namazuplus') {return 1;}
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_JP_CHECK'} eq "checked") {return 1;}
return 0 ;
}
sub EQfromWhere
{
my ($GB) = @_;
if(!&EQfromWhereON($GB)) {return 0;}
my $a47 = &area47($GB) ;
if($a47 eq '') {return 0;}
$GB->{FORM}->{'FROM'} = "$GB->{FORM}->{'FROM'}<\/b>($a47)" ;
return 1;
}
########################################################################
# 名無しの処理(vipランダム)
########################################################################
sub NanashiReplace4vipON
{
my ($GB) = @_;
if($GB->{FORM}->{bbs} eq 'poverty') {return 1;}
if($GB->{FORM}->{bbs} eq 'news') {return 1;}
# if($GB->{FORM}->{bbs} eq 'anime4vip') {return 1;}
if($GB->{FORM}->{bbs} eq 'asaloon') {return 1;}
# if($GB->{FORM}->{bbs} eq 'campus') {return 1;}
# if($GB->{FORM}->{bbs} eq 'news4vip') {return 1;}
# if($GB->{FORM}->{bbs} eq 'operate2') {return 1;}
return 0 ;
}
sub NanashiReplace4vip
{
my ($GB) = @_;
if(!&NanashiReplace4vipON($GB)) {return 0;}
if($GB->{FORM}->{'FROM'} ne '' || defined $GB->{TRIPKEY})
{
#●はスルー
if($GB->{MARU}) {return 0;}
if($GB->{KABUU}) {return 0;}
if($GB->{BEelite} eq 'SOL') {return 0;}
if($GB->{BEelite} eq 'DIA') {return 0;}
}
my $fusi = "" ;
if($GB->{FORM}->{'FROM'} =~ /fusianasan/) {$fusi="fusianasan";}
my $kab = "" ;
if($GB->{FORM}->{'FROM'} =~ /(!kab[a-z\d\-\%\:]+)/) {$kab = $1;}
elsif($GB->{FORM}->{'FROM'} =~ /(!kab)/) {$kab = $1;}
$ENV{REMOTE_ADDR} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ ;
my $kk = $1 ;
my $mm = $2 ;
my $iq = $3 ;
my $nm = $4 ;
if($GB->{KEITAI})
{
$GB->{IDNOTANE} =~ /\S*(\d+)\S*/ ;
$nm = $1;
}
my ($sec, $min, $hhh, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($GB->{NOWTIME});
$iq *= 255 ;
$nm += $iq ;
# my $off = (($mon*31 + $mday)*24 + $hhh) ; # 毎時変更
my $off = ($mon*31 + $mday) ; # 毎日変更
$nm += $off ;
my $sss = (scalar @FOX_774) ;
if($sss < 1) {return 0;}
my $omikuji2 = $nm % $sss ;
my $omikuji3 = $FOX_774[$omikuji2] ;
if($GB->{FORM}->{bbs} eq 'poverty') {$omikuji3 = $FOX->{$GB->{FORM}->{bbs}}->{'BBS_NONAME_NAME'} ;}
my $a47 = &area47($GB) ;
# if($GB->{FORM}->{bbs} eq 'news')
# {
# my $yy = ($nm % 70) + 38 ;
# $a47 = "$yy才";
# }
if($GB->{FORM}->{bbs} eq 'campus')
{
my $yy = ($nm % 20) + 25 ;
$a47 = "SS$yy";
}
if($GB->{FORM}->{bbs} eq 'poverty')
{
if($a47 ne '')
{
$omikuji3 =~ s/\(\S+\)/<\/b>\($a47\)/;
}
else
{
$omikuji3 =~ s/\(\S+\)/<\/b>\(チリ\)/;
}
$GB->{FORM}->{'FROM'} = "$fusi$kab $omikuji3" ;
undef $GB->{TRIPKEY};
return 1;
}
else
{
if($a47 ne '')
{
$omikuji3 =~ s/\(\S+\)/\($a47\)/;
}
else
{
$omikuji3 =~ s/\(\S+\)/\(チリ\)/;
}
}
$GB->{FORM}->{'FROM'} = "$fusi$kab <\/b>$omikuji3" ;
# $GB->{FORM}->{'FROM'} = "$GB->{FORM}->{'FROM'}<\/b>$omikuji3" ;
# $GB->{FORM}->{'FROM'} = "<\/b>$FOX_774[$sss]" ;
undef $GB->{TRIPKEY};
return 1;
}
#############################################################################
# vip臭い
#############################################################################
sub vip931
{
my ($GB) = @_ ;
# return 0 ;
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_VIP931'} ne "checked") {return 0;}
#my $eee = $GB->{FORM}->{bbs} . "+" . $FOX->{$GB->{FORM}->{bbs}}->{'BBS_VIP931'};
#&DispError2($GB,"ERROR!","checked $eee");
#携帯はスルー
if($GB->{KEITAI}) {return 0;}
if($GB->{KEITAIBROWSER}) {return 0;}
# 携帯・味ぽんはするー
if(&IsIP4Mobile($ENV{REMOTE_ADDR})) {return 0;}
#★はスルー
if($GB->{CAP}) {return 0;}
#●はスルー
if($GB->{MARU}) {return 0;}
#公式p2はスルー
if($GB->{P22CH}) {return 0;}
use LWP::UserAgent;
my $fff = "1111222233334440" ;
if($GB->{FORM}->{bbs} eq 'news4vip' || $GB->{FORM}->{bbs} eq 'campus')
{
$fff = "1111222233334441" ;
}
my $x = "http://cook81.2ch.net/931/vip931.so?$fff-$ENV{REMOTE_ADDR}";
my $ua = LWP::UserAgent->new();
$ua->timeout(3);
my $request = HTTP::Request->new('GET', $x);
my $response = $ua->request($request) ;
my $response_body = $response->content();
my $response_code = $response->code();
# 情報取得エラーなら臭くないことにする
if ($response->is_error) {return 0;}
$response_body =~ /VIP931\[([0-9]+)\]/;
#&DispError2($GB,"ERROR!","vip臭いです($1,$response_code)
詳しい解説");
$GB->{V931} = $1 ;
if($GB->{V931} ne "0")
{
# 特定の板ではvipperマークをつけて許可
if($GB->{FORM}->{'bbs'} eq "operate2" ||
$GB->{FORM}->{'bbs'} eq "sec2chd")
{
$GB->{FORM}->{'FROM'} = ' [ ^ω^] ' . $GB->{FORM}->{'FROM'};
return 0;
}
# それ以外
&DispError2($GB,"ERROR!","犬臭いです($1,$response_code)
詳しい解説");
}
return 0 ;
}
#############################################################################
# P2かどうか
#############################################################################
sub IsP2
{
my ($GB) = @_ ;
#公式p2はスルー
if($GB->{P22CH}) {return 0;}
if($GB->{HOST999} =~ //) {return 0;}
if($ENV{'HTTP_USER_AGENT'} !~ /^Monazilla\/1/) {return 0;}
if($GB->{HOST999} =~ /lolipop\.jp/) {return 1;}
if($GB->{HOST999} =~ /land\.to/) {return 1;}
if($ENV{'HTTP_USER_AGENT'} =~ /[Pp]2/) {return 1;}
if($ENV{'HTTP_USER_AGENT'} =~ /[Pp]\+\+/) {return 1;}
return 0;
}
#############################################################################
# 佐賀ウィルス対策
#############################################################################
##### Mozilla/4.0 (compatible; ICS)
sub Saga
{
my ($GB) = @_ ;
if($ENV{'HTTP_USER_AGENT'} =~ /Mozilla\/4\.0 \(compatible; ICS\)/)
{
&DispError2($GB,"FOX ★","FOX ★ 佐賀ウィルス
調整中。。。");
}
return 0;
}
#############################################################################
# 山田ウィルス対策
#############################################################################
##### Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
sub Yamada
{
my ($GB) = @_ ;
#if($ENV{'HTTP_USER_AGENT'} !~ /Mozilla\/4\.0/){return 0;}
my $mss = substr($GB->{FORM}->{'MESSAGE'}, 0, 30);
# $mss =~ s/</g; $mss =~ s/>/>/g;
#if($ENV{'SERVER_NAME'} =~ /tmp4/ && $GB->{FORM}->{'MESSAGE'} =~ /しとるの/)
{#cookie
#if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{'HTTP_COOKIE'}]\n";close(ABCD);}
#if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{'HTTP_COOKIE'}]$mss\n";close(ABCD);}
#if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{HTTP_ACCEPT_LANGUAGE}]$mss\n";close(ABCD);}
if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{'HTTP_USER_AGENT'}]\n";close(ABCD);}
#if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{'HTTP_USER_AGENT'}]$mss\n";close(ABCD);}
}
if($ENV{'HTTP_COOKIE'} =~ /^NAME\=\; MAIL\=sage\; PON\=/
&& $ENV{'HTTP_USER_AGENT'} !~ /^Monazilla\/1/
&& $ENV{'HTTP_USER_AGENT'} !~ /Opera/
&& $ENV{'HTTP_USER_AGENT'} !~ /DDIPOCKET/
&& $ENV{HTTP_ACCEPT_LANGUAGE} eq '')
{
#if($ENV{'SERVER_NAME'} =~ /tmp4/ && $GB->{FORM}->{'MESSAGE'} =~ /しとるの/)
{#cookie
#if(open(ABCD,">>./yamada.txt")){print ABCD "$ENV{'HTTP_COOKIE'}\n";close(ABCD);}
#if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{HTTP_ACCEPT_LANGUAGE}]\n";close(ABCD);}
if(open(ABCD,">>./yamada.txt")){print ABCD "[$ENV{'HTTP_USER_AGENT'}]\n";close(ABCD);}
}
{
my $mss = substr($GB->{FORM}->{'MESSAGE'}, 0, 30); $mss =~ s/</g; $mss =~ s/>/>/g;
my $outdat = "$GB->{FORM}->{'FROM'}<>$GB->{FORM}->{'mail'}<>$GB->{DATE}<>$mss<>$GB->{FORM}->{'subject'}<>$GB->{HOST999}<>$ENV{'REMOTE_ADDR'}<><>$ENV{'HTTP_USER_AGENT'}";
#日付と時間をげとする
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($GB->{NOWTIME});
my $fff = sprintf("../_service/Yamada%04d%02d%02d.txt",$year+1900,$mon+1,$mday) ;
open(OUT2, ">>$fff");
print OUT2 "$outdat\n";
close(OUT2);
}
&DispError2($GB,"FOX ★","FOX ★ 山田ウィルス
調整中。。。");
}
}
#############################################################################
# クッキー発行
#############################################################################
sub PutCookie
{
my ($GB) = @_;
#有効期限をつくる
my $exp = 24 * 60 * 60;
$exp *= 30; #有効日数を乗じる
my ($dmy,$mdc,$monc,$yrc,$wdayc,$mc,$yc,$times);
($dmy,$dmy,$dmy,$mdc,$monc,$yrc,$wdayc,$dmy,$dmy) = gmtime($GB->{NOWTIME} + $exp);
$yc = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') [$wdayc];
$mc = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') [$monc];
$yrc = $yrc+1900;
$mdc = "0$mdc" if ($mdc < 10);
my ($cname, $cmail);
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_NAMECOOKIE_CHECK'} eq "checked"){
$cname = "$GB->{FORM}->{'FROM'}";
}
if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_MAILCOOKIE_CHECK'} eq "checked"){
$cmail = "$GB->{FORM}->{'mail'}";
}
if($ENV{'HTTP_USER_AGENT'} =~ /[Mm][Aa][Cc]/ ){
$cname =~ s/(\W)/'%' . unpack('H2', $1)/eg;
$cmail =~ s/(\W)/'%' . unpack('H2', $1)/eg;
}
print "Set-Cookie: NAME=$cname; expires=$yc, $mdc-$mc-$yrc 00:00:00 GMT; path=/\n";
print "Set-Cookie: MAIL=$cmail; expires=$yc, $mdc-$mc-$yrc 00:00:00 GMT; path=/\n";
return 0;
}
#############################################################################
# 投稿確認画面
#############################################################################
sub ToukouKakunin
{
my ($GB) = @_;
my $mdc = '';
my $msg = $GB->{FORM}->{'MESSAGE'};
my $sbj = $GB->{FORM}->{'subject'};
$msg =~ s/<[Bb][Rr]>/\n/g;
$msg =~ s/&/&/g;
$msg =~ s/"/"/g;
$sbj =~ s/&/&/g;
$sbj =~ s/"/"/g;
#確認画面を出す
print "Content-type: text/html; charset=shift_jis\n\n";
print <
投稿確認
書きこみ確認
$GB->{FORM}->{'subject'}
名前: $GB->{FORM}->{'FROM'}
E-mail: $GB->{FORM}->{'mail'}
内容:
$GB->{FORM}->{'MESSAGE'}
$ENV{HTTP_USER_AGENT}
投稿確認(2)
・投稿された内容はコピー、保存、引用、転載等される場合があります。
・投稿に関して発生する責任は全て投稿者に帰します。
変更する場合は戻るボタンで戻って書き直して下さい。(cookieを設定するとこの画面はでなくなります。)