06/12/07 09:24:04
>>85
IDに関しては、下記で作っている
---------------------------------------------------
bbs.cgi で
$uid = $cid == 1 ? makeid($userhost) : $mail ne '' ? '???' : makeid($userhost);
で呼び出し
# ID作成
sub makeid {
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time);
my $id = crypt (crypt ($_[0], $mon), $mday + 31);
return substr ($id, -8);
}
-----------------------------------------
$_[0]の$userhostは、ホスト名があればホスト名、なければIPが入る。
ホスト名が近すぎるのかもしれないです。
だから、多分、IP($ENV{'REMOTE_ADDR'})で作ればよいと思う
sub makeid {
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time);
my ($ip1, $ip2, $ip3, $ip4) = split(/\./,$ENV{'REMOTE_ADDR'});
my $idkey = $ip1 + ($ip2 * 300) + ($ip3 * 5000) + ($ip4 * 12000);
my $id = crypt (crypt ($idkey, $mon), $mday + 31);
return substr ($id, -8);
}
ただ、携帯(特にFOMA)の場合、IPがころころ変わります
携帯の場合、$idkeyをIPではなく、UID(個体識別番号)でつくるべき。
UIDの取得、未登録拒否 が必要。ここらは携帯のUIDを取得しているいないで変わります