忍法帖 開発スレッド Part23

このエントリーをはてなブックマークに追加
193ピロリ(WiMAX)
my $NINJA_Takusan_DB = 7 ; # 沢山いっきに忍法帖IDを取得するIPを格納するDB
my $Expire7 = 180 ; # 同一IPで使われる忍者IDデータの有効期限
my $Check7 = 2 ; # 同一IPで使われる忍者IDのcheck数

##############################################################################
sub check_takusan_ninjaID
{
my ($ipaddr, $ninjaid) = @_;
my $ret = 0 ;

my $r = Redis->new(server => '127.0.0.1:6379', encoding => undef);
$r->auth("foobared");
my $ppp = $r->ping;
# if($ppp) {print "ping = $ppp<br>\n";} # redisサーバの生存確認
if(!$ppp) {return -1;}

$r->select($NINJA_Takusan_DB);
if(!$r->exists($ipaddr))
{ # ご新規さん。IPアドレスをキーにして忍者IDを記録
#my $aa = sprintf qq|***new[%s]|,$ipaddr;&LogLog("$aa\n");
$r->sadd($ipaddr, $ninjaid);
$r->expire($ipaddr, $Expire7);
}
else
{
if($r->sismember($ipaddr, $ninjaid) == 1)
{ # 忍者IDが登録されている?
;
$r->expire($ipaddr, $Expire7); # 有効期限を更新
my $ttl = $r->ttl($ipaddr);
}
else
{
$r->sadd($ipaddr, $ninjaid); # 忍者IDを登録
$r->expire($ipaddr, $Expire7); # 有効期限を更新
my $ttl = $r->ttl($ipaddr);
}
my $num_of_ID = $r->scard($ipaddr); # IPアドレスに紐付けされている忍者IDの数
# my $aa = sprintf qq|***[%s]%s|,$num_of_ID,$ipaddr;&LogLog("$aa\n");
# if ($num_of_ID > $Check7)
# { # 以上なら煮るなり焼くなり破門するなり
#my $aa = sprintf qq|***[%s]%s|,$num_of_ID,$ipaddr;&LogLog("$aa\n");
# }
$ret = $num_of_ID ;
}

$r->quit;

return $ret;
}
194ピロリ(WiMAX):2012/03/13(火) 19:51:29.83 発信元:49.133.117.140 0
こんなのを書いているニダ
195名無しさん@お腹いっぱい。(芋):2012/03/13(火) 19:56:55.85 発信元:117.55.65.129 0
ドコモがspmodeで動的IPアドレスを認証に使ってやらかしてる問題知らない訳じゃないでしょ?
IP直の紐付けは色々な問題が有ると思うんだよ
196ピロリ(WiMAX):2012/03/13(火) 20:03:18.07 発信元:49.133.117.140 0
現在の引っかかっているやつ
http://ninja.2ch.net/test/re-dis/re-04.cgi
my $Check7 = 3 ; # 同一IPで使われる忍者IDのcheck数
197ピロリ(WiMAX):2012/03/13(火) 20:07:41.94 発信元:49.133.117.140 0
>>170 が勃発したあたりで >>196を観察して欲しいぞ
198名無しさん@お腹いっぱい。(もんじゃ):2012/03/13(火) 20:08:37.60 発信元:121.92.62.217 0
ちょっと整理
やりたいことは2つある?
1既に取得されて蓄積されてる大量の忍法帳対策
2大量に取得される忍法帳の防止策
2については2つのやりかたが考えられてる
2-1 大量取得を防止する
2-2 今後、大量取得しても使えないようにする

で、今進行中はのは2-1?