use strict 'vars'; use File::stat; use POSIX qw(:errno_h strftime); use BBSD; ######################################################### sub bbs_entry { use vars qw($BBSCGI) ; #グローバルー $BBSCGI = '2010/10/28' ; #最終更新日 use vars qw($FOX) ; #グローバルー use vars qw(@FOX_K998) ; #グローバルー 規c制リスト(●) use vars qw(@FOX_K999) ; #グローバルー 規制リスト(ISP) use vars qw(@FOX_Ro54) ; #グローバルー 規制リスト(Rock54) use vars qw(@FOX_KABUU) ; #グローバルー 特別株主優待銘柄リスト use vars qw(@FOX_774) ; #グローバルー 名無しリスト(vip) #県名ルックアップ use vars qw(%FOX_KEN_ASAHI) ; #グローバルー asahi-net use vars qw(%FOX_KEN_DION) ; #グローバルー dion # 最初にumask(0)を宣言しておく(最後まで有効) umask(0); unless(defined($FOX)) { # $FOX = 20 ; $FOX = {} ; @FOX_K998 = () ; @FOX_K999 = () ; @FOX_Ro54 = () ; &initFOX ; #広告関係は最初に一回読み込んで、 srand(time) ; #乱数 @FOX_KABUU = () ; &readKABUU() ; } &bbs_entryXXX ; } ############################################################################# #専門板? ############################################################################# sub IsSenmon { my ($GB) = @_ ; if($ENV{'SERVER_NAME'} !~ /2ch.net/) {return 1;} if($ENV{SERVER_NAME} =~ /hayabusa/) {return 0;} if($GB->{FORM}->{bbs} =~ /plus$/) {return 0;} if($GB->{FORM}->{bbs} =~ /saloon$/) {return 0;} if($GB->{FORM}->{bbs} =~ /anime/) {return 0;} if($GB->{FORM}->{bbs} eq 'morningcoffee') {return 0;} if($GB->{FORM}->{bbs} eq 'news') {return 0;} if($GB->{FORM}->{bbs} eq 'anime4vip') {return 0;} if($GB->{FORM}->{bbs} eq 'news4vip') {return 0;} if($GB->{FORM}->{bbs} eq 'news4viptasu') {return 0;} if($GB->{FORM}->{bbs} eq 'campus') {return 0;} if($GB->{FORM}->{bbs} eq 'ghard') {return 0;} if($GB->{FORM}->{bbs} eq 'poverty') {return 0;} if($GB->{FORM}->{bbs} eq 'wcomic') {return 0;} if($GB->{FORM}->{bbs} eq 'soccer') {return 0;} if($GB->{FORM}->{bbs} eq 'ms') {return 0;} if($GB->{FORM}->{bbs} eq 'campus') {return 0;} if($GB->{FORM}->{bbs} eq 'streaming') {return 0;} if($GB->{FORM}->{bbs} eq 'mmo') {return 0;} if($GB->{FORM}->{bbs} eq 'slot') {return 0;} if($GB->{FORM}->{bbs} eq 'comic') {return 0;} if($GB->{FORM}->{bbs} eq 'skate') {return 0;} if($GB->{FORM}->{bbs} eq 'keiba') {return 0;} if($GB->{FORM}->{bbs} eq 'giin') {return 0;} if($GB->{FORM}->{bbs} eq 'seiji') {return 0;} if($GB->{FORM}->{bbs} eq 'famicom') {return 0;} if($GB->{FORM}->{bbs} eq 'shar') {return 0;} if($GB->{FORM}->{bbs} eq 'mog2') {return 0;} if($GB->{FORM}->{bbs} eq 'download') {return 0;} if($GB->{FORM}->{bbs} eq 'livemarket2') {return 0;} if($GB->{FORM}->{bbs} eq 'livemarket1') {return 0;} if($GB->{FORM}->{bbs} eq 'base') {return 0;} return 1 ; } ############################################################################# # IPv6接続かどうかをチェックする # はじめのほうで使うので、bbs-entry.cgi に入れることにする # $GBの初期化時に呼ばれる # 引数はなし ############################################################################# sub IsIPv6 { my $saddr = $ENV{'SERVER_ADDR'}; use Net::IP qw(:PROC); return ip_is_ipv6($saddr); } ######################################################### # ######################################################### sub foxSamba24Init { my ($ita) = @_ ; $FOX->{BOOK} = "." ; if(-e "/md/tmp/book") {$FOX->{BOOK} = "/md/tmp" ;} $FOX->{SambaOffset_KEITAI} = 10 ; $FOX->{SambaOffset_P22CH} = 10 ; # if($FOX->{$ita}->{"BBS_BE_TYPE2"}) {return 120;} if($ita eq 'newsplus') {return 128;} #return 10 ; if($ita eq 'liveplus') {return 20;} if($ita =~ /ogame/) {return 20;} if($ita =~ /bgame/) {return 60;} if($ita eq 'news') {return 20;} if($ENV{SERVER_NAME} =~ /hayabusa/) {return 20;} if($ENV{SERVER_NAME} !~ /2ch\.net/ && $ENV{SERVER_NAME} !~ /bbspink\.com/) { return 600; } if($ENV{SERVER_NAME} =~ /bbspink\.com/) {return 20;} return 40 ; } ####################################################################### # ####################################################################### sub foxViva { my ($GB, $tane) = @_ ; my $Samba = "VivaSamba24" ; my $span = 180 ; #規制秒数 $tane =~ s/\./-/g; $tane =~ s/\//~/g; my $sFile = "$FOX->{BOOK}/book/$tane.cgi"; my $remo = $GB->{HOST29} ; #いわゆるリモホ my $ipip = $ENV{REMOTE_ADDR} ; my $isViva ; # 携帯はするー if($GB->{KEITAI}) {return 0;} # 雪だるまでは、良くわかんないので今のところなし、その後実装よろしく # → 実装しますた if(IsSnowmanServer) { my $errmsg = bbsd_db($GB->{FORM}{bbs}, 'chkid', 'vivaSamba', $tane, $span, 0xFFFF, 0xFFFF, 'dummy'); if (&bbsd_TimeoutCheck($GB, $errmsg)) {return 0;} if ((split /,/, $errmsg)[0]) { $errmsg = bbsd_db($GB->{FORM}{bbs}, 'peekid', 'vivaSambaIP', "$tane:$ipip", $span, 0xFFFF, 0xFFFF, 'dummy'); if (&bbsd_TimeoutCheck($GB, $errmsg)) {return 0;} if (!(split /,/, $errmsg)[0]) {$isViva = 1;} } if (!$isViva) { bbsd_db($GB->{FORM}{bbs}, 'chkid', 'vivaSambaIP', "$tane:$ipip", $span, 0xFFFF, 0xFFFF, 'dummy'); } } else { if(-e $sFile) { my ($prsize, $prmtime) = (local $_=stat($sFile)) ? ($_->size, $_->mtime) : (0, 0); my $ctime = time; my $keika = $ctime - $prmtime; #$GB->{FORM}->{'MESSAGE'} .= "