⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verifynum.cgi

📁 一个linux论坛
💻 CGI
字号:
#!/usr/bin/perl

#############################################################
#  LeoBoard ver.5000 / LB5000 / 雷傲超级论坛 ver.5000
#
#  版权所有: 雷傲工作室(原蓝宝石软件工作室)
#
#  制作人  : 山鹰糊 (Shining Hu)
#            花无缺 (Ifairy Han)
#           
#  主页地址: http://www.CGIer.com/      CGI 编程者之家
#	     http://www.LeoBoard.com/   雷傲论坛支持主页
#	     http://www.leoBBS.com/     本论坛直通车
#            
#############################################################
BEGIN {
    $LBPATH = '.';
    my $pgm = $0;
    $pgm =~s/\\/\//g;
    $pgm =~s/^.*\/([^\/]+)$/$1/g;
    unless (-e $LBPATH.'/'.$pgm) {
        foreach ($0, $ENV{'SCRIPT_FILENAME'}, $ENV{'PATH_TRANSLATED'}) {
            s!\\!/!g; s/^(.*)\/[^\/]+$/$1/g;
            if (-e $_ . '/' .$pgm) { $LBPATH = $_; last; }
        }
    }
    unshift (@INC, "$LBPATH");
}
require "data/boardinfo.cgi";

      @n0 = ("c3","99","99","99","99","99","99","99","99","c3");
      @n1 = ("cf","c7","cf","cf","cf","cf","cf","cf","cf","c7");
      @n2 = ("c3","99","9f","9f","cf","e7","f3","f9","f9","81");
      @n3 = ("c3","99","9f","9f","c7","9f","9f","9f","99","c3");
      @n4 = ("cf","cf","c7","c7","cb","cb","cd","81","cf","87");
      @n5 = ("81","f9","f9","f9","c1","9f","9f","9f","99","c3");
      @n6 = ("c7","f3","f9","f9","c1","99","99","99","99","c3");
      @n7 = ("81","99","9f","9f","cf","cf","e7","e7","f3","f3");
      @n8 = ("c3","99","99","99","c3","99","99","99","99","c3");
      @n9 = ("c3","99","99","99","99","83","9f","9f","cf","e3");

###获取真实的 IP 地址
$ipaddress = $ENV{'REMOTE_ADDR'};
$trueipaddress = $ENV{'HTTP_X_FORWARDED_FOR'};
$ipaddress = $trueipaddress if (($trueipaddress ne "") && ($trueipaddress ne "unknown"));
$trueipaddress = $ENV{'HTTP_CLIENT_IP'};
$ipaddress = $trueipaddress if (($trueipaddress ne "") && ($trueipaddress ne "unknown"));

###生成随机验证码
srand;
$verifynum = int(rand(10000));
$verifynum = sprintf("%04d", $verifynum);

###获取当前时间
$currenttime = time;

###将当前进程验证码保存
mkdir ("${lbdir}verifynum", 0777) if (!(-e "${lbdir}verifynum"));
$filetomake = $lbdir . "verifynum/" . $ipaddress . ".cgi";
$filetomake =~ s/[<>\^\(\)\{\}\a\f\n\e\0\r\"\`\&\;\|\*\?]//g;
open(FILE, ">$filetomake");
print FILE "$verifynum\t$currenttime";
close(FILE);

   $counter = $verifynum;
   $len=length($counter);
   
   @bitmap=();
   for($i=0;$i<10;$i++) {
      for($j=0;$j<$len;$j++) {
         $n=substr($counter,$j,1);
         $bytes=&takebitmap($n,$i); 
         push(@bitmap,$bytes);              
      }
   }
   for ($i=0;$i<$len*3;$i++) {
   	  $num=int(rand(6));
   	  $a=substr("abcdef",$num,1);
   	  $num=int(rand(3));
   	  $b=substr("def",$num,1);
          $a="$b$a";
          unshift(@bitmap,$a);    
          push(@bitmap,$a);       
   }

   print "Content-type: image/x-xbitmap\n\n";
   printf ("#define count_width %d\n#define count_height 16\n",$len*8);
   printf STDOUT "static char count_bits[] = {\n";
   for($i = 0; $i < ($#bitmap+1); $i++) {
      print("0x$bitmap[$i]");
      if ($i != $#bitmap) {
         print(",");
         if (($i+1) % 7 == 0) {
            print("\n");
         }
      }
   }
   print("};\n");

exit 0;

sub takebitmap {
if ($_[0]==0) {return $n0[$_[1]];}   
elsif ($_[0]==1) {return $n1[$_[1]];}   
elsif ($_[0]==2) {return $n2[$_[1]];} 
elsif ($_[0]==3) {return $n3[$_[1]];} 
elsif ($_[0]==4) {return $n4[$_[1]];} 
elsif ($_[0]==5) {return $n5[$_[1]];} 
elsif ($_[0]==6) {return $n6[$_[1]];} 
elsif ($_[0]==7) {return $n7[$_[1]];} 
elsif ($_[0]==8) {return $n8[$_[1]];} 
elsif ($_[0]==9) {return $n9[$_[1]];} 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -