450:荒巻@管理人 ★
2011/01/09(日) 17:37:40.59 ID:???
ソース:
################################################################
#
# IDを返す(2ch互換) /dev/urandom から作成された../bbs/md5.cgiが必要。。(涙
#
################################################################
sub id {
my ($bbs,$md5date,$num,$tane);
my @wdays = ("日", "月", "火", "水", "木", "金", "土");
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time);
my $id = "*********"; #2ちゃんねるIDパス@流出ざまぁwwwwwwwwwwwwwwww
if($_[0] eq "yid") { $mday = $mday - 1; }#昨日のIDも出せるよ!(使ってるのかな
$md5date = sprintf("%04d_%02d_%02d", $year + 1900, $mon + 1, $mday);
$bbs = "***********"; #パスワード代わりに使う
#ここからが大変。IDの種を作るよ!
#2ちゃんねるソース内では$GB->{IDNOTANE}となってる。ID作成ユニットのキモ
#通常のユーザー(反転IPのC79を含む)
$tane = $ENV{'REMOTE_ADDR'};
#P2ユーザー(偽鯖飛ばしは他でやってたハズ
if($ENV{'HTTP_X_P2_USER'}){
$tane = $ENV{'HTTP_X_P2_USER'};
}
#DOCOMOユーザー
elsif($ENV{'HTTP_X_DCMGUID'}){
$tane = $ENV{'HTTP_X_DCMGUID'};
}
#AUユーザー
elsif($ENV{'HTTP_X_UP_SUBNO'}){
$tane = $ENV{'HTTP_X_UP_SUBNO'};
$tane =~ s/\.ezweb\.ne\.jp//;
$tane =~ s/\.ido\.ne\.jp//;
}
# ボーダフォン!ライブ
elsif($ENV{'HTTP_USER_AGENT'} =~ /SN([\w]+?) /) {
$tane = $1;
}
# E-Mobile
elsif($ENV{HTTP_X_EM_UID} ne '') {
$tane = ENV{'HTTP_X_EM_UID'};
}
# C79 User
if($ENV{'HTTP_X_C79_USER'}) {
$tane = $ENV{'HTTP_X_C79_USER'};
}
use Digest::MD5 ;
use Digest::MD5 qw(md5_hex);
my $idnum = md5_hex($tane);
my $md5 = Digest::MD5->new;
$md5->add(substr($idnum,-4));
$md5->add($bbs);
$md5->add($num);
$id = substr($md5->b64digest, 0, 8);
#ここから独自仕様実装(キャリア表示等)
if($ENV{'HTTP_X_UP_SUBNO'}){
$id = substr($id,-6);
$id.= "A";
}elsif($ENV{'HTTP_X_DCMGUID'}){
$id = substr($id,-6);
$id.= "D";
}elsif($ENV{'HTTP_USER_AGENT'} =~ /SN([\w]+?) /){
$id = substr($id,-6);
$id.= "S";
} elsif ($ENV{HTTP_X_EM_UID} ne '') {
$id = substr($id,-6);
$id.= "E";
}else{
$id = substr($id,-7);
}
$id .= BrowserCheckforID();
return $id;
}
854Res/198.54 KB
↑[8] 前[4] 次[6]
書[5]
板[3] 1-[1] l20