накручевает хосты и кликает по баннерам в баннерной сети Кликозавр PHP: <?php function get($url, $proxy) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_TIMEOUT, 2); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); curl_setopt($ch, CURLOPT_PROXY, "$proxy"); curl_setopt($ch, CURLOPT_REFFERER, "http://cs1437.vkontakte.ru/[[IMPORT]]/adv.spes-it.ru/swf/containers/vk_570x100.swf?spesit_pid=Ваш id в сети &spesit_sid=session"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, '<response set="2" session="session" pid="Ваш id в сети " nid="2" />'); $ss=curl_exec($ch); curl_close($ch); return $ss; } function get2($url, $proxy) { $a=rand(1,3); if ($a == 1){ $ref = "Ссылка на ваше прило в ВК"; } if ($a == 2){ $ref = "На второе прило "; } if ($a == 3){ $ref = "Третье прило"; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_TIMEOUT, 2); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); curl_setopt($ch, CURLOPT_PROXY, "$proxy"); curl_setopt($ch, CURLOPT_REFFERER, $ref); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, '<response set="2" session="session" pid="Ваш id в сети " nid="2" />'); $ss=curl_exec($ch); curl_close($ch); return $ss; } $proxy = array(); $file = 'proxynew.txt'; if( is_file($file) ) { $handle = fopen($file, "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $proxy[] = $data[0]; } } foreach( $proxy as $prox ) { $content = get('http://adv.spes-it.ru/cgi/adv/banner', $prox); echo $content; echo $prox; echo("~~~".$n++."~~~"); $p = xml_parser_create(); xml_parse_into_struct($p,$content,$vals,$index); xml_parser_free($p); if (count($vals[0][attributes])>1){ echo $vals[0][attributes][LINK]; $p = rand(1,100); if ($p > 95){ $content = get2($vals[0][attributes][LINK], $prox); echo $content; echo $prox; } } } ?>
Нужна программа (как то попадалась в сети, сейчас не могу найти), чтобы автоматизировать действия. Прогрмма запоминает действия и повторяет их. Подскажите, кто знает.
_http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=%D0%B0%D0%B2%D1%82%D0%BE%D0%BA%D0%BB%D0%B8%D0%BA%D0%B5%D1%80
Обрезка Flash роликов это не скрипт конечно же, но это я когда то искал сильно: Обрезка флеш ролика например вы вставили часы на сайт а там имя разработчика или рамка не нужная есть и вам обрезать нужно - чтобы не показывалось на сайте ... PHP: обрезать снизу <div style="height:100px;overflow:hidden;"> <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" width="400" height="300"> <param name="movie" value="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" /> <param name="wmode" value="opaque" /> </object> </div> обрезать сверху <div style="height:100px;overflow:hidden;"> <div style="margin-top:-200px;"> <object type="application/x-shockwave-flash" data="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" width="400" height="300"> <param name="movie" value="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" /> <param name="wmode" value="opaque" /> </object> </div> </div>
Защита от копирования текста сайта 1)Защита от копирования текста сайта с использованием атрибута unselectable. Этот атрибут запрещает или разрешает выделять текст в каком либо элементе (on - запрещает, off - разрешает) - unselectable="on". Пример показан в виде слоя №1. Код следующий: PHP: <div unselectable="on" style="position: absolute; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify">Текст в слое №1 защищён от копирования с помощью свойства unselectable со значением on. Защита от копирования работает в Internet Explorer и Opera. Не работает в Firefox.</div> 2) Защита от копирования текста сайта с использованием свойства z-index в CSS. С помощью него задаётся порядковый номер элемента в стеке. Элемент с большим порядковым номером всегда находится перед элементом с меньшим порядковым номером. Это свойство можно использовать для усложнения процесса копирования следующим образом. Выбираем элемент содержащий текст. Это может быть параграф - <p></p>, заголовок - <h1></h1>, слой - <div></div> и т.д. Задаём для него свойство z-index. Например, значение 1 - z-index: 1. Затем вставляем рисунок размером с имеющийся текст. Рисунок должен быть пустым прямоугольником и полностью прозрачным. Задаём для него свойство z-index: 2. Поскольку свойство z-index у рисунка больше, то он расположится поверх текста. Таким образом, текст нельзя будет выделить и скопировать. Пример показан в виде слоя №2. Код следующий: PHP: <div style="position: relative; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify; z-index:1"><img src="../pictures/hidden.gif" style="z-index:2; position: absolute">Текст в слое №2 защищён от копирования с помощью наложения прозрачного рисунка поверх него с использованием свойства z-index. Защита работает во всех браузерах.</div> 3) Защита от копирования текста сайта с использованием следующих атрибутов: атрибут oncontextmenu возникает, когда пользователь щелкает правой кнопкой мыши в клиентской области браузера для вызова контекстного меню. Таким образом, можно запретить вызов контекстного меню, если присвоить данному атрибуту значение return false - oncontextmenu="return false"; атрибут oncopy возникает при копировании в буфер обмена. Если присвоить данному атрибуту значение return false, то выделенный текст не попадет в буфер обмена - oncopy="return false"; атрибут onselectstart возникает при выделении объекта или текста. Если присвоить данному атрибуту значение return false, то выделения не произойдет - onselectstart="return false". Пример показан в виде слоя №3. Код следующий: PHP: <div oncopy="return false" oncontextmenu="return false" onselectstart="return false" style="position: relative; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify">Текст в слое №3 защищён от копирования с помощью свойства oncopy, oncontextmenu и onselectstart со значением return false. Защита от копирования не работает в Opera.</div>
простой перенос длинного текста PHP: <div style="width:190px; word-break:break-all">текст длинный<div>
Скрипт сохраняет всю информации о гостях(посетителях) вашего сайта (Дата, время,host name, IP-адрес и т.д.) и присылает вам на электронную почту. PHP: #! /usr/local/bin/perl # mail-log.cgi # # Version 2.03 -- 27 Jan 1997 # http://www.all-yours.net/scripts/ # Perl (release 4 or 5) script for Unix servers # Written by Walter Soldierer of All-Yours Internet Solutions # ([email protected]), one of the authors of # # THE DIGITAL POSTCARD # # A FREE service to increase your web site's exposure! # Need more hits? # Check it out at http://www.all-yours.net/postcard/ # This script saves access date+time, the visitor's host name, their IP # address and browser type, and the refering page (if any) to a log file # on your server (default name = logfile.txt). This file will be automatically # mailed to your mailbox. You can change the mailing interval according # to your needs (default value is every 50 accesses to the page to be # logged). The script will autocreate the logfile, if it does not exist. # ----- BEGIN INSTALLATION INSTRUCTIONS ----- # - Save this script to a file mail-log.cgi # - Cut installation instructions (optional) # - Change the first script line, if your server's Perl executable # is not located in /usr/local/bin/perl # - Customize the settings below (*SETTINGS*) # * Change e-mail address for $recipient # * Set $log_page to 1 if you also want to log the page that # called this script. Recommended in case you want to log accesses # to more than one HTML page. # * Set $max_entries to your needs, if you want to have more or less # than 50 log entries mailed to your mailbox each time. # * Change path/filename for log file, if necessary # (default = logfile.txt in your cgi directory) # * Change values for $check_host and $interval, if necessary # * Change filename for host/time file, if necessary (default = hosttime.txt) # - ASCII-upload mail-log.cgi to your cgi directory (cgi-bin, cgi-local...) # Make it executable (chmod mail-log.cgi 755) # - add the following line (Server Sde Include) to the page(s) to be logged # (after the <body> tag): # <!--#exec cgi="/your-cgi-directory/mail-log.cgi"--> # HTML pages with Server Side Include tags often need to have the # file extension ".shtml" !!!! (don't forget to update # all links to this page(s) accordingly) # (You should test the script with a test.shtml page first) # - Load the logged page(s) with your browser. # - View your new logfile # It should look something like this: # # Time: 05/30/96 14:44:07 EDT # Host: your.host.and.domain # Addr: 123.45.67.89 # With: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) # Page: test.shtml # From: [no entry here, if you accessed your page directly (otherwise Yahoo etc.)] # # If the script doesn't work and you want to contact us, please check # the following first: # - did you upload the script in ASCII mode (*not* binary)? # - did you chmod the script 755 # - does your server support the "exec cgi" Server Side Include? # - did you rename the html file to .shtml # - did you check the path to your server's Perl executable? # # If you still have a problem and you want us to help you, we need to know: # - a detailed description of your problem # - your script's settings section # - html code and file name for the page to be logged # - script related error messages from your server's error log file # ----- END INSTALLATION INSTRUCTIONS ----- # ----------------------------------------------------------------------- # *SETTINGS* to customize this script: # Your email address (within single quotes!): $recipient = '[email protected]'; # Do you want to log the .shtml page's file name? # (recommended when more than one poage is logged) # 1 = the .shtml page that called this script will be logged # 0 = the .shtml page that called this script will not be logged $log_page = 1; # Do you want to log your visitor's IP number? # The script attemps to call a domain name server in order to resolve # IP addresses (such as 132.45.323.5) to a host name (such as yourdomain.com) # However, resolving IP addressses doesn't work 100 per cent so you # might also want to log rhe IP addresses. # 1 = IP addresses will be logged # 0 = IP addresses will be discarded $log_IP = 1; # Number of logged visits mailed to your mailbox at a time: $max_entries = 50; # Change logfile name if necessary: $logfile = 'logfile.txt'; # server's sendmail directory: $mailprogam = '/usr/lib/sendmail'; # If you set $check_host = "1" the script attempts not # to log multiple page reloads. # When a page was accessed from the same host by using the same # browser, this visit will only be logged after the time # interval specified in $interval. # Example: You set $interval to 1800 (seconds). If there was no # access from a different host in the meantime, a visitor from the # same host who uses the same browser will only be logged when s/he # accesses your page 30 minutes after visitor one. # In other words: If someone reloads the page many times, in most cases # s/he needs to wait 30 minutes after each reload to make your log file # grow. When you set $check_host to 0 even the reloads will be logged. $check_host = 1; # set to zero if you don't like this feature # If you set the $check_host variable to 1, specify a time interval to # ignore page reloads $interval = 600; # seconds! # If you set the $check_host variable to 1, change the name of the file # that temporarily stores host and time information (if necessary) $hostfile = 'hostfile.txt'; # don't change anything past this line unless you know what you are doing # ----------------------------------------------------------------------- # create a date+time string $shortdate = `date +"%D %T %Z"`; chop ($shortdate); # Some of Perl's network info functions required here ($part1,$part2,$part3,$part4)=split(/./,$ENV{REMOTE_ADDR}); $IP_adr=pack("C4",$part1,$part2,$part3,$part4); ($host_name)=(gethostbyaddr("$IP_adr", 2)); print "Content-type: text/plain\n\n"; if ($check_host) { # read host and time info from last visitor if (-e "$hostfile") { open(HOST,"$hostfile"); $hostline = <HOST>; chop($hostline) if $hostline =~ /n$/; close(HOST); ($old_time,$old_number,$old_page,$old_browser) = split(/|/,$hostline); } # save host and time info and check if this is a page reload open(HOST,">$hostfile"); $seconds = time; print HOST "$seconds\|$ENV{REMOTE_ADDR}\|$ENV{'DOCUMENT_URI'}\ |$ENV{'HTTP_USER_AGENT'}"; close(HOST); if (time - $old_time < $interval && $ENV{REMOTE_ADDR} eq $old_number && $ENV{'DOCUMENT_URI'} eq $old_page && $ENV{'HTTP_USER_AGENT'} eq $old_browser) { exit; # probably same visitor, so exit } } # open log file for output and append new log data open (LOGFILE, ">>$logfile"); print LOGFILE "Time: $shortdate\n"; print LOGFILE "From: $ENV{'HTTP_REFERER'}\n"; print LOGFILE "IP : $ENV{REMOTE_ADDR}\n" if $log_IP; print LOGFILE "Host: $host_name\n"; print LOGFILE "With: $ENV{'HTTP_USER_AGENT'}\n"; print LOGFILE "Page: $ENV{'DOCUMENT_URI'}\n" if $log_page; print LOGFILE "\n"; close (LOGFILE); # open log file for input and count log entries open (LOGFILE, $logfile); @entries = <LOGFILE>; close (LOGFILE); $log_rows = 7; $log_rows-- unless $log_page; $log_rows-- unless $log_IP; $log_count = @entries/$log_rows; # if number of logs >= max. number of logs, mail file and delete it if ($log_count >= $max_entries) { open (MAIL, "|$mailprogam $recipient") || die "Can't open $mailprogam!\n"; print MAIL "Subject: Mail-log File\n\n"; print MAIL "@entries\n"; close MAIL; unlink $logfile; } # end of script Лично для меня очень полезный скрипт, думаю и вам пригодится
small_script Мои 5 копеек. В сети редко появлялся и нужно было отслеживать, когда страница 1-а обновиться (и получить ее html) на mail. См. коммент. Работало по cron. Code: #!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); use locale; use POSIX 'locale_h'; setlocale(LC_CTYPE, 'ru_RU.CP1251'); use LWP::Simple; #Здесь задем url целевого сайта my $doc = get("http://[URL]/"); if (defined($doc)) { # Если на странице обнаружена надпись "coming soon" то еще рано рыпаться =(. if (index( $doc, "coming soon") == -1) { $stat = "Start"; } else { $stat = "Не-а =(!"; } } else { $stat = "Error upload!" } #Тупим дату @date = localtime(time()); $year = $date[5] + 1900; print $stat."\n"."\n"; print $date[2].":".$date[1]." ".$date[3]."-".$date[4]."-".$year ." ". $stat."\n"; #Тупим страничку if ($stat eq "Start") { print "HTML code: ".$doc."/n"; } undef $doc;
незнаю где спросит, но есть гденить скрипт на скачивание музыки с http://music.yandex.ru? там очень удобно, всё по альбомам. желательно скачивание альбомами.
Двойная каптча, сомневаюсь что пробиваема. Показывается 2 капчи, но с виду это не видно (как-будто одна) и надо ввести число с 2 картинок сразу. index.php PHP: <?php session_start(); ?> <img src="captcha.php?step=1" /><img src="captcha.php?step=2" /> <form method="post"> Введите число: <input type="text" name="getСode"> <input name="sub" type=submit value="Ввод"> </form> <?php if($_POST['sub']) { if($_POST['getСode'] == $_SESSION['step1'].$_SESSION['step2']) { echo "Число введено верно"; } else { echo "Число введено неверно"; } } captcha.php PHP: <?php /******************************** * © Isis 2011 !!!!! *******************************/ session_start(); $step = isset($_GET['step']) ? intval($_GET['step']) : null; if ($step == 1) { $string = $_SESSION['step1'] = rand(100, 999); } else { $string = $_SESSION['step2'] = rand(100, 999); } $im = imagecreatetruecolor(80, 45); imagealphablending($im, false); imagesavealpha($im, true); $trans = imagecolorallocatealpha($im, 255, 255, 255, 227); $black = imagecolorallocate($im, 255, 255, 0); imagefilledrectangle($im, 0, 0, 299, 299, $trans); imagealphablending($im, true); imagettftext($im, 40, 0, 0, 48, $black, '28 Days Later.ttf', $string); header("Content-type: image/png"); imagepng($im); imagedestroy($im); Шрифт 28 Days Later.ttf заменить на свой
выдает в браузер список прочеканых проксей с сайтов из списка PHP: <?php @set_time_limit(0); $filename = 'sitesproxy.txt'; $n = 15; //количество потоков при проверке проксей $regular = '#[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{2,5}#'; $ban = array(); $proxy = array(); foreach (file($filename) as $url) { $url = trim($url); $page = curlPage($url); preg_match_all($regular, $page, $p); if (!count($p[0])) $ban[] = $url; else $proxy = array_merge($proxy, $p[0]); } $proxies = __array_unique($proxy); $countProxy = count($proxies); if ($countProxy <= $n) { chk($proxies); } else { $c = floor($countProxy / $n); for ($i = 1; $i <= $c; $i++) chk(array_slice($proxies, $n * $i, $n)); chk(array_slice($proxies, $n * ($c + 1), $countProxy - $n * $c)); } if (count($ban) == 1) echo '<hr>Сайт не принес пользы: ' . $ban[0]; if (count($ban) > 1) { echo '<hr>Сайты не приносят пользы:<br>'; foreach ($ban as $sitename) echo $sitename . '<br>'; } function chk($proxies) { $mc = curl_multi_init (); for ($thread_no = 0; $thread_no < count($proxies); $thread_no++) { $c [$thread_no] = curl_init (); curl_setopt($c [$thread_no], CURLOPT_URL, "http://google.com"); curl_setopt($c [$thread_no], CURLOPT_HEADER, 0); curl_setopt($c [$thread_no], CURLOPT_RETURNTRANSFER, 1); curl_setopt($c [$thread_no], CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($c [$thread_no], CURLOPT_TIMEOUT, 10); curl_setopt($c [$thread_no], CURLOPT_PROXY, trim($proxies [$thread_no])); curl_setopt($c [$thread_no], CURLOPT_PROXYTYPE, 0); curl_multi_add_handle($mc, $c [$thread_no]); } do { while (($execrun = curl_multi_exec($mc, $running)) == CURLM_CALL_MULTI_PERFORM) if ($execrun != CURLM_OK) break; while ($done = curl_multi_info_read($mc)) { $info = curl_getinfo($done ['handle']); if ($info ['http_code'] == 301) echo trim($proxies [array_search($done['handle'], $c)]) . "<br>\r\n"; curl_multi_remove_handle($mc, $done ['handle']); } } while ($running); curl_multi_close($mc); } function curlPage($url) //curl { if (!function_exists('curl_init')) die('На сервере не установлено или отключено расширение cURL. Скрипт завершил работу.'); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); @curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Accept-Language: ru,en-us;q=0.7,en;q=0.3', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json', 'User-Agent: Mozilla/5.0 (X11; U; Gentoo-Linux; ru; rv:1.9.2.3)socks-php-bot Gecko/20100404 Firefox/3.7.0 GTB7.0', 'Accept-Encoding: deflate', 'Accept-Charset: UTF-8,*')); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 300); return curl_exec($curl); } function __array_unique($array) { $r = array(); foreach ($array as $key => $value) { if (!in_array($value, $r)) $r[] = $value; } return $r; }
Название скрипта: Скрипт возращающий запрос по которому был переход на ваш сайта со всех известных поисковиков, поисковик и страницу выдачи на которой есть ваш запрос. (подерживаются поисковики yandex, google, rambler, yahoo.com, go.mail.ru, aport.ru, nigma.ru, search.com, live.com, msn.com, aol.com, нужны будут другие пишите) Описание скрипта: Вернет через символ | следующие параметры: (например так google|термины бальных танцев|21|20) 1) Поисковая система с которой пришли на ваш сайт 2) Запрос по которому пришли на ваш сайт 3) Страница выдачи (в зависимости от поисковика либо порядковый номер первого результата на странице, т.е. если выдается по 10 результатов на странице, то 41 означает 4 страницу выдачи). 4) Кол-во результатов на странице (если значение по умолчание не менялось будет пустым) Этот запрос очень удобно использовать для: а) ведения статистики б) выдачи полезной информации пользователю (например, при определенном запросе перемещать на нужную страницы или выводить подсказку) в) показывать в поисковой системе сайта запрос пользователя u) и т.д. Вызов скрипта: без параметров, например так echo getKeyWords(); Скрипт: PHP: # Возвращает запросы со всех поисковиков function getKeyWords(){ $q = $_SERVER['HTTP_REFERER']; if(strlen($q)>0){ if(strpos($q,'yandex')>0) return getKeyWord($q,'yandex.ru','text','p','numdoc'); else if(strpos($q,'google')>0) return getKeyWord($q,'google','q','start','num'); else if(strpos($q,'rambler.ru')>0) return getKeyWord($q,'rambler.ru','query','page',''); else if(strpos($q,'yahoo.com')>0) return getKeyWord($q,'yahoo.com','p','b','n'); else if(strpos($q,'go.mail.ru')>0) return getKeyWord($q,'go.mail.ru','q','sf',''); else if(strpos($q,'aport.ru')>0) return getKeyWord($q,'aport.ru','r','p',''); else if(strpos($q,'nigma.ru')>0) return getKeyWord($q,'nigma.ru','s','startpos',''); else if(strpos($q,'search.com')>0) return getKeyWord($q,'search.com','q','nav',''); else if(strpos($q,'live.com')>0) return getKeyWord($q,'live.com','q','first',''); else if(strpos($q,'search.msn.com')>0) return getKeyWord($q,'search.msn.com','q','first',''); else if(strpos($q,'search.aol.com')>0) return getKeyWord($q,'search.aol.com','query','page',''); else return ''; } } # Возвращает запрос function getKeyWord($q,$find,$word,$page,$num){ $tmp = getParams($q,$word); if(strlen($tmp)>0){ return $find.'|'.$tmp.'|'.getParams($q,$page).'|'.getParams($q,$num); } return ''; } # Возвращает параметр из HTTP_REFERER function getParams($q,$prm){ if(strlen($prm) == 0) return ''; $i = strpos($q,'&'.trim($prm).'='); if($i == 0) $i = strpos($q,'?'.trim($prm).'='); if($i > 0){ $tmp = substr($q,$i+strlen($prm)+2); if(strpos($tmp,'&')>0) $tmp = substr($tmp,0,strpos($tmp,'&')); $tmp = getStringUtf(urldecode($tmp)); return $tmp; } return ''; }
скрипт используется с функциями преобразование из Utf 8 в ANSI русских символов PHP: # Преобразование из Utf 8 в ANSI function getStringUtf($prm){ $tmp = "";$j=0; while($j<strlen($prm)) { $tmp1 = getTextUtf(ord($prm[$j]),ord($prm[$j+1]),$j); $tmp = $tmp . $tmp1; $j++; } return $tmp; } function getTextUtf($tmp,$tmp1,&$i){ if($tmp==208 || $tmp==209){ if($tmp==209) $t = 64; $i = $i + 1; return chr($tmp1 - 144+ord('А')+$t); } else { return chr($tmp); } }
admf-0.3.pl Скриптик для подбора url админки ресурса. С ним: admin.txt – пути для перебора (лист честно выдернут из Admin Finder); proxy.txt – файл с прокси (iport), если есть желание использовать (флаг: –proxy). Результат записывает/дописывает в лог. Архив: [admf.pl + admin.txt] Code: #!usr/bin/perl # _ # _ __ ___ ___ _____| |__ _ __ _ _ # | '__| _ \| _' _ \ _ \ | '__| | | | # | | | (_) \ | | | | | (_) ) | | | '_| | # |_| \___._\| |_| |_|____/.DATAPUNK.|_| \___._\ # # _ _ _ _ _ _ _ _ _ _ _ _ admf.pl ver 0.3 by ta-kyn # _ _ _ _ _ _ _ _ _ _admin.txt file by Admin Finder use LWP::UserAgent; use Getopt::Long; our $targeturl=""; our $proxy=""; our $adminfile=""; $options = GetOptions ('targeturl=s'=> \$targeturl, 'proxy'=> \$proxy); # Если targeturl не введён – вызываем функцию help() if (!$targeturl) { &help(); } else { # А если введен, проверяем что нам там навводили =) $pattern = qr/^(http\:\/\/)+([a-z0-9\-]+\.)+([a-z]{2,6})$/i; if ($targeturl =~ m/$pattern/) { $adminfile = "admin.txt"; if (-s $adminfile) { print "\n"; print "admin.txt found. Size\:", -s $adminfile, "b\n"; #print "\n"; &go(); } else { print "\n"; print "ERROR! admin.txt NOT FOUND!"; print "\n"; exit; } } else { print "\n"; print "ERROR! URL not correct\n"; &help(); print "\n"; exit; } } sub go() { my @list; my $col = 0; open(ADMINLIST, '<admin.txt') or die("ERROR open file admin.txt $!"); flock(ADMINLIST, 2) or die("ERROR! lock file admin.txt $!"); @list=<ADMINLIST>; chomp (@list); flock(ADMINLIST, 8) or die("ERROR! unlock file admin.txt $!"); close(ADMINLIST); my $spider = LWP::UserAgent->new(); $spider->agent(&f_agent()); print "Start!\n"; if ($proxy) { $proxurl = &proxy(); $spider->proxy(['http']=>"http://".$proxurl."/"); print "Using proxy " . $proxurl ."\n"; } my $request = HTTP::Request->new(GET => $targeturl); my $result = $spider->request($request); if ($result->code() == "500") { print "Can't connect to ". $targeturl ."\n"; exit; } else { for($i=0;$i<@list;$i++) { my $request = HTTP::Request->new(GET => $targeturl."\/".$list[$i]."\n"); my $result = $spider->request($request); print $targeturl."\/".$list[$i]."\n"; print $result->status_line()."\n"; print "\n"; if ($result->code() != "404") { $col++; open(LOGLIST, '>>admf-log.txt') or die("ERROR open file admf-log.txt $!"); flock(LOGLIST, 2) or die("ERROR! lock file admf-log.txt $!"); print LOGLIST "]--------------------->$targeturl\n"; print LOGLIST "URL: $targeturl/$list[$i]\n"; print LOGLIST $result->status_line()."\n"; print LOGLIST "\n"; flock(LOGLIST, 8) or die("ERROR! unlock file admf-log.txt $!"); close(LOGLIST); } } if ($col != 0) { print "FOUND! Result - file admf-log.txt\n"; } else { print "Sorry, not found =(\n" } } undef $spider; undef @list; } sub proxy() { my $proxycheck = LWP::UserAgent->new(); $proxycheck->agent(&f_agent()); open(PROXYLIST, 'proxy.txt') or die ("ERROR open file proxy.txt $!"); flock(PROXYLIST, 2) or die("ERROR! lock file admin.txt $!"); @proxylist=<PROXYLIST>; chomp (@proxylist); flock(PROXYLIST, 8) or die("ERROR! unlock file admin.txt $!"); close(PROXYLIST); if (scalar @proxylist == 0) { print "Proxy not found\n"; exit; } for ($j=0;$j<@proxylist;$j++) { my $pr = $proxylist[$j]; $proxycheck->proxy(['http'] => 'http://'.$pr); if ($proxycheck->get('http://ya.ru')->is_success) {return $pr;} } print "Working proxy not found!\n"; undef $pr; undef @proxlist; undef $proxycheck; exit; } sub f_agent { my @agent = qw(Opera/9.15 Opera/9.12 Opera/8.60b IE/4.0 IE/5.0 IE/6.0 IE/7.0 Mozilla/4.0 Mozilla/5.0); return $agent[rand scalar @agent]; } sub help() { print "\n"; print "<------------------------[admf.pl]------------------------>\n"; print "Usage:\n"; print "--targeturl=URL target site\n"; print "for use proxy add flag. file: proxy.txt (ip:port): --proxy\n"; print "Example:\n"; print "admf.pl --targeturl=http://xxx.com --proxy\n"; print "<--------------------------------------------------------->\n"; print "\n"; } undef $targeturl; undef $proxy; undef $adminfile; __END__
Название: Скрипт выводящий все файлы Flash видео из определенного каталога,с опоисанием и возможностью задания картинку, которая будет показыватся до воспроизведения видео. Параметры : $dirname - папка где лежит видео $width - ширина видео $height - высота видео Описание : Скрипт находит все файлы вида ***.flv и отображает как Flash вмдео на сайте, так же если есть файл jpg и txt с тем же именем и в том же каталоге что ***.flv, то он их использует как картинку до отображения видео и описание находящие под Flash роликом. Кроме скрипта в ту же папку, что скрипт надо положить файл player.swf (его можно взять здесь). Легко можно скрипт настроить и на другой плеер Flash видео. Пример вызова : echo WorkDir("video",540,432); Код: PHP: #Функция обработки директории function WorkDir($dirname,$width,$height) { $str = ""; if ($dir = @opendir($dirname)) { while (($file = @readdir($dir)) !== false) { $str .= getFlashVideo($dirname.'/',$file,$width,$height); } closedir($dir); } return $str; } #Функция обработки видео function getFlashVideo($dir,$file,$width,$height) { $str = ""; if(strpos($file,".flv")>0) { $img = str_replace('.flv','.jpg', $file); $txt = $dir . str_replace('.flv','.txt', $file); $comment = @file_get_contents($txt); $str .= '<object id="player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="player" width="'. $width.'" height="'.$height.'">"'; $str .= '<param name="movie" value="player.swf" />'."\n"; $str .= '<param name="allowfullscreen" value="true" />'."\n"; $str .= '<param name="allowscriptaccess" value="always" />'."\n"; $str .= '<param name="flashvars" value="file='.$dir. $file . '&image='.$dir.$img.'" />'."\n"; $str .= '</object> <br />'.$comment.'<br /> <br /> '."\n"; } return $str; }
Парсер + Синонимизатор + Экспорт в CMS Synonyma.ru. Плагин работает на базе универсального парсера Datacol. После сбора и уникализации контента, парсер может автоматически экспортировать данные в различные CMS, такие как Wordpress и DLE. Таким образом можно автоматически создавать сателлиты с уникальным и более менее читаемым контентом в различных нишах. На видео как раз показан пример генерации сателлита посредством взаимодействия Datacol и плагина синонимизации. Задать вопросы по поводу плагина вы можете напрямую мне. Мои контакты можно найти здесь. Купить плагин вместе с Datacol можно у автора парсера на официальном сайте Datacol.