📄 vercheck.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");
}
use LBCGI;
$LBCGI::POST_MAX=50000;
$LBCGI::DISABLE_UPLOADS = 1;
$LBCGI::HEADERS_ONCE = 1;
require "lbadmin.lib.pl";
require "data/boardinfo.cgi";
require "lb.lib.pl";
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$thisprog = "vercheck.cgi";
$query = new LBCGI;
@params = $query->param;
foreach (@params) {
$theparam = $query->param($_);
$theparam =~ s/\@/\\\@/g;
$theparam = &unHTML("$theparam");
${$_} = $theparam;
if ($_ ne 'action') {
$printme .= "\$" . "$_ = \"$theparam\"\;\n";
}
}
$inmembername = cookie("adminname");
$inpassword = cookie("adminpass");
$inmembername =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;
$inpassword =~ s/[\a\f\n\e\0\r\t\|\@\;\#\{\}\$]//isg;
&getadmincheck;
print header(-charset=>gb2312);
&admintitle;
&getmember("$inmembername");
if (($membercode eq "ad") && ($inpassword eq $password) && ($password ne "") && ($inmembername ne "") && (lc($inmembername) eq lc($membername))) {
if ($action eq "process") {
$server_port = ":$ENV{'SERVER_PORT'}" if ($ENV{'SERVER_PORT'} ne '80');
$fullurl = "http://$ENV{'SERVER_NAME'}$server_port$ENV{'SCRIPT_NAME'}";
$myurl = substr($fullurl,0,rindex($fullurl,"/"));
$versionnumbertemp = $versionnumber;
$versionnumbertemp =~ s/ //isg;
$geturl="http://www.leoboard.com/cgi-bin/lbver.cgi?ver=$versionnumbertemp&url=$myurl";
$out=&lbagent($geturl);
($tmp, $lastver, $finish, $downtime, $nowver, $hasfunc, $gb, $big5, $eng, $download) = split(/§/,$out);
if ($lastver ne "") {
print qq~
<tr><td bgcolor=#333333" colspan=2><font face=宋体 color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 查看论坛版本更新</b>
</td></tr>
<tr>
<td bgcolor=#EEEEEE valign=middle colspan=2><br>
~;
if ($versionnumber =~/LB5000/g){
$myver=$versionnumber;
$myver=~s /LB5000II//isg;
$myver=~s /LB5000 II//isg;
$myver=~s /LB5000XP//isg;
$myver=~s /LB5000 XP//isg;
$myver=~s /LB5000MX//isg;
$myver=~s /LB5000 MX//isg;
$newver=$nowver;
$newver=~s /LB5000II//isg;
$newver=~s /LB5000 II//isg;
$newver=~s /LB5000XP//isg;
$newver=~s /LB5000 XP//isg;
$newver=~s /LB5000MX//isg;
$newver=~s /LB5000 MX//isg;
$myver =~s / v//isg;
$newver =~s / v//isg;
my $gengxin="";
if ($myver >= $newver){
print qq~
<font face=宋体 color=#333333 ><center><b>您现在使用的是最新版本,感谢你使用我们的论坛 !</b><br><br>
~;
$gengxin="无需升级";
}else{
print qq~
<font face=宋体 color=#333333 ><center><b>当前$nowver已经提供下载,如果你需要升级,请参看下面的连接 !</b><br><br>
~;
$gengxin="需要升级";
}
if ($big5 eq "") { $big5 = "没有" } else { $big5 = qq~<a href=$big5>$big5</a>~; }
if ($eng eq "") { $eng = "没有" } else { $eng = qq~<a href=$eng>$eng</a>~; }
print qq~
<table><tr><td>当前最新版本: $lastver [ 你当前使用版本:$versionnumber <font color=red>$gengxin</font>]<br><hr>
<img src=$imagesurl/icon/txt.gif width=16 height=16 border=0> <font color=blue>已完成功能:</font> (估计提供下载时间: <B>$downtime</b> )<br><br>
$finish <br>
<hr>
</td></tr>
<tr><td><br>当前可提供下载的最新版本: <B>$nowver</b><br><hr>
<img src=$imagesurl/icon/txt.gif width=16 height=16 border=0> <font color=red>新增功能列表:</font><br><br>
$hasfunc <br><br>
<hr>
<img src=$imagesurl/icon/txt.gif width=16 height=16 border=0> <b>下载地址:<br>
<B>[简体版本]</B> <img src=$imagesurl/icon/zip.gif width=16 height=16 border=0> <a href=$gb>$gb</a> <br>
<B>[繁体版本]</B> <img src=$imagesurl/icon/zip.gif width=16 height=16 border=0> $big5<br>
<B>[英文版本]</B> <img src=$imagesurl/icon/zip.gif width=16 height=16 border=0> $eng<br>
<hr><br>
<b>自2002年10月01日以来,至少 <b><font color=blue>$download</font></b> 人安装过本论坛!</b>
<hr>
</td></tr></table>
~;
}else{
print qq~
<font face=宋体 color=#333333 ><center><b>你非法修改版本号,请及时改回连接和版本标示,谢谢合作!</b><br><br>
~;
}
print qq~
</center>
</td></tr></table></td></tr></table>
~;
}
else {
print qq~
<tr><td bgcolor=#333333" colspan=2><font face=宋体 color=#FFFFFF>
<b>欢迎来到 LB5000 论坛管理中心/查看论坛版本更新</b>
</td></tr>
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font color=#333333><b>没有版本信息</b><br>估计 Socket 模块不能正常使用,或者Leoboard服务器调整。<BR>请访问 http://www.leoboard.com 或者 http://www.cgier.com 查看更新情况吧 !
</td></tr></table></td></tr></table>
~;
}
}
else {
$inmembername =~ s/\_/ /g;
if ($versionnumber =~/LB5000/g){
print qq~
<tr><td bgcolor=#333333" colspan=2><font face=宋体 color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 论坛版本检查</b>
</td></tr>
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font face=宋体 color=#333333 ><b>论坛版本检查</b>
</td></tr>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="process">
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font face=宋体 color=#990000 ><b><center>LB5000 论坛管理中心 / 论坛版本检查</center></b><br>
<font face=宋体 color=#333333 >你可以查看当前Leoboard站点论坛的版本情况,<br>知道当前最新版本和是否增加了有用的功能,是否适合你升级!<br><br>
本程序没有危害性,而且我们特意没有采用加密方式传送,<br>仅仅是为了让大家获得最新版本的情况,谢谢你采用雷傲论坛!
</td>
</tr>
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<input type=submit value="检查版本更新情况"></form></td></tr></table></td></tr></table>
~;
}
else {
print qq~
<tr><td bgcolor=#333333" colspan=2><font face=宋体 color=#FFFFFF>
<b>欢迎来到论坛管理中心 / 论坛版本检查</b>
</td></tr>
<tr>
<td bgcolor=#EEEEEE valign=middle align=center colspan=2>
<font face=宋体 color=#333333 ><center><b>你非法修改版本号,请及时改回连接和版本标示,谢谢合作!</b><br><br>
</td></tr></table></td></tr></table>
~;
}
}
}
else {
&adminlogin;
}
print qq~</td></tr></table></body></html>~;
exit;
sub lbagent {
my $out="";
my $url=shift;
$url =~ m@http://(.*?)/(.*)@;
my ($host,$path) = ($1,$2);
my $port = 80;
if ($host =~ /(.*):(\d+)/) { $host = $1; $port = $2; }
my $file;
if ($path =~ m@.*/(.*)@) { $file = $1; } else { $file = $path; }
my ($name,$aliases,$addrtype,$len,@addrs) = gethostbyname($host);
my ($a,$b,$c,$d) = unpack("C4",$addrs[0]);
my $that = pack('S n C4 x8',2,$port,$a,$b,$c,$d);
select (sock);
$|=1;
select (STDOUT);
socket(sock,2,1,0);
my $result = connect(sock,$that);
if ($result != 1) { $out="error!"; }
else {
print sock "GET /$path HTTP/1.1\r\n";
print sock "Host: $host\r\n";
print sock "Accept: */*\r\n";
print sock "User-Agent: LeoBoard Agent 1.1\r\n";
print sock "Pragma: no-cache\r\n";
print sock "Cache-Control: no-cache\r\n";
print sock "Connection: close\r\n";
print sock "\r\n";
my @out = <sock>;
foreach (@out){
$out=$out.$_;
}
close(sock);
}
return $out;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -