1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. Botchal
  2. Botchal
  3. Botchal
    Сегодня один мой знакомый попросил помочь с программой для вычисления наименьшего расстояния между двумя точками, но по скольку я не знаю ничё кроме пхп написал скрипт! всё на тарелочке вводиш в форму а скрипт ответ выдаёт <?php echo" <form action='' method='post'> Координаты по оси X для первой точки - <input type='text' name='A_x' value='100'><br> Координаты по оси Y для первой точки - <input type='text' name='A_y' value='100'><br> <br><br> Координаты по оси X для второй точки - <input type='text' name='B_x' value='200'><br> Координаты по оси Y для второй точки - <input type='text' name='B_y' value='200'><br> <input type=submit value='Вычеслить!'> <hr> "; if(isset($_POST['A_x'])){$A_x=$_POST['A_x']; if(isset($_POST['A_y'])){$A_y=$_POST['A_y']; if(isset($_POST['B_x'])){$B_x=$_POST['B_x']; if(isset($_POST['B_y'])){$B_y=$_POST['B_y']; echo"Координата по оси X для первой точки - ".$A_x."<br>"; echo"Координата по оси Y для первой точки - ".$A_y."<br>"; echo"Координата по оси X для второй точки - ".$B_x."<br>"; echo"Координата по оси Y для второй точки - ".$B_y."<br>"; if($A_x==$B_x){ if($A_x>$B_x){$RASTOYANIE=$A_x-$B_x;echo$RASTOYANIE;die();} if($B_x>$A_x){$RASTOYANIE=$B_x-$A_x;echo$RASTOYANIE;die();} } if($A_y==$B_y){ if($A_y>$B_y){$RASTOYANIE=$A_y-$B_y;echo$RASTOYANIE;die();} if($B_y>$A_y){$RASTOYANIE=$B_y-$A_y;echo$RASTOYANIE;die();} } if($A_x > $B_x){$deystvie1=$A_x-$B_x;}else{$deystvie1=$B_x-$A_x;} echo"Расстояние между проекциями точек на координатную ось X - ".$deystvie1."<br>"; if($A_y>$B_y){$deystvie2=$A_y-$B_y;}else{$deystvie2=$B_y-$A_y;} echo"Расстояние между проекциями точек на координатную ось Y - ".$deystvie2."<br><br><br>"; $RASTOYANIE_v_kvadrate=$deystvie1*$deystvie1+$deystvie2*$deystvie2; // функция sqrt вычесляет квадрат числа $RASTOYANIE=sqrt($RASTOYANIE_v_kvadrate); echo"Наименьшее расстояние между точками - ".$RASTOYANIE."";die(); }}}} ?>
    Автор темы: Botchal, 21 июн 2010, ответов - 0, в разделе: PHP
  4. Botchal
    TheMazzahaka а ты потести VPN)))
    Сообщение от: Botchal, 20 июн 2010 в разделе: PHP
  5. Botchal
  6. Botchal
    ну тогда вот тебе function time_pages_load($deletetime,$maxpages,$pertime,$page_for_ban){ $time=time(U); $time_detected=$time-$pertime; $ip = $_SERVER['HTTP_CLIENT_IP'];if($ip==""){$ip=$_SERVER['REMOTE_ADDR'];} $query = "select time_load from page_load_detected where ip='$ip' and time_load>'$time_detected'"; $result=mysql_query($query);$result=mysql_num_rows($result); if($result >= $page_for_ban){ $htaccess = @fopen(".htaccess","a+"); $deny = "deny from ".$ip." \r\n"; fwrite($htaccess,$deny); fclose($htaccess); die("<div class='warning'>Вы слишком часто листаете страницы, этим вы нагружаете сервер, просматривате страницы не больше чем ".$maxpages." страниц в ".$pertime." секунд(ы) <font color='red'>На данный момет вы заблокированы по IP адресу</font> для разблокировки свяжитесь с администратором</div>");} if($result >= $maxpages){die("<div class='warning'>Вы слишком часто листаете страницы, этим вы нагружаете сервер, просматривате страницы не больше чем ".$maxpages." страниц в ".$pertime." секунд(ы) <a href='index.php'>Хорошо, я постараюсь</a></div>");} $time_deleted=$time-$deletetime; $result=mysql_query("delete from page_load_detected where time_load < '$time_deleted'"); $query = "insert into page_load_detected (ip,time_load) values('$ip','$time')"; $result=mysql_query($query); } создайте таблицу page_load_detected CREATE TABLE `page_load_detected` ( `id` int(20) NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL DEFAULT '', `time_load` int(40) NOT NULL ,   PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251; и файл .htaccess в корне в index.php добавте time_pages_load("600","3","1","10"); 1 число, фактически врямя ранения логов 2 число страниц 3 временной промежуток в секундах в котором можно просматривать (предыдущее число) страниц 4 если за (третье число) просмотрено N страниц то бан по .htaccess по ip в нашем варианте можно просматривать 3 страницы в 1 секунду, если просмотрено 10 страниц за 1 секунду то бан по IP, время хваранения 10 минут(600 секунд)
    Сообщение от: Botchal, 20 июн 2010 в разделе: PHP
  7. Botchal
    спасёт, предложи вариант работы бота
    Сообщение от: Botchal, 20 июн 2010 в разделе: PHP
  8. Botchal
  9. Botchal
    Данный скрипт отсечёт мне кажется всех ботов function cheked_proxy(){ if($_SERVER['HTTP_X_FORWARDED_FOR']!=""){die("<div class='warning'>Вы используете proxy server, это недопустимо, сожалеем но это наше требование</div>");} if($_SERVER['HTTP_CLIENT_IP']!="" and $_SERVER['REMOTE_ADDR']!=$_SERVER['HTTP_CLIENT_IP']){die("<div class='warning'>Вы используете proxy server, это недопустимо, сожалеем но это наше требование</div>");} } //ЧЕК БОТ КРЭЗИ РЕЖИМ// function checked_bot_crazy(){ if($_SERVER['HTTP_USER_AGENT']==""){die("<div class='warning'>Ваш броузер не определён, сожалеем но это наше требование</div>");} $coockiename1=md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT'].$_SERVER['HTTP_USER_AGENT']."78eryher78h768erher87h77er8herh7her7h"); $coockiename2=md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT'].$_SERVER['REMOTE_ADDR']."re8h7er89h67erh6er8her8h6erhye9gyreyg"); if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename1)) {}else{ if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename2)) {}else{ $hashcoockie = @fopen("logs/site_users/hashcoockie","a+"); $D = "$coockiename1 | $coockiename2\r\n"; fwrite($hashcoockie,$D); fclose($hashcoockie); }} echo " <!-- проверка есть ли у цели разрешение экрана --> <script type='text/javascript'> function setCooc (){document.cookie = '".$coockiename1."=' + screen.availWidth; document.cookie = '".$coockiename2."=' + screen.availHeight; }var Scrnonload = window.onload; window.onload = function () { if(Scrnonload) Scrnonload(); setCooc(); }</script> <!-- проверка есть ли у цели разрешение экрана --> "; $width = $_COOKIE[$coockiename1];$height = $_COOKIE[$coockiename2]; if($width=="" or $height==""){ if($_SERVER['HTTP_REFERRER']=="/" or $_SERVER['HTTP_REFERRER']=="index.php"){ die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование1</div>");}else{die("<meta http-equiv='Refresh' content='0;URL=index.php'>");} } $coockiename1=md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT'].$_SERVER['HTTP_USER_AGENT']."78eryher78h768erher87h77er8herh7her7h"); $coockiename2=md5($_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT'].$_SERVER['REMOTE_ADDR']."re8h7er89h67erh6er8her8h6erhye9gyreyg"); if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename1)) {}else{die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование</div>2");} if (strpos(file_get_contents("logs/site_users/hashcoockie"), $coockiename2)) {}else{die("<div class='warning'>Ваш броузер не поддерживает JavaScript либо выключены Coockie, сожалеем но это наше требование</div>3");} } //ЧЕК БОТ НОРМАЛ РЕЖИМ// function cheked_bot_normal(){ if($_SERVER['HTTP_USER_AGENT']==""){die("<div class='warning'>Ваш броузер не определён, сожалеем но это наше требование</div>");} $ip = $_SERVER['HTTP_CLIENT_IP'];if($ip==""){$ip=$_SERVER['REMOTE_ADDR'];} $counter = $ip; setcookie("botchaltestbot",$counter); if($_COOKIE['botchaltestbot']!=$ip){ if($_SERVER['HTTP_REFERRER']=="/" or $_SERVER['HTTP_REFERRER']=="index.php"){ die("<div class='warning'>Ваш броузер не определён либо у вас отключены Coockie, сожалеем но это наше требование</div>");}else{die("<meta http-equiv='Refresh' content='0;URL=index.php'>");} }} //ЧЕК РАЗМЕР ЗАГОЛОВКОВ// function checked_size_http_header(){ $maxheadersize="300"; if(strlen($_SERVER['HTTP_USER_AGENT']) > $maxheadersize or strlen($_SERVER['HTTP_REFERRER']) > $maxheadersize or strlen($_SERVER['HTTP_ACCEPT'])  > $maxheadersize or strlen($_SERVER['CONTENT_LENGTH']) > $maxheadersize or strlen($_SERVER['HTTP_COOKIE']) > $maxheadersize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");} } //РАЗМЕР ПОСТ И ГЕТ// function cheked_size_post_and_get(){ $maxPOSTsize="200"; $maxGETsize="100"; foreach($_POST as $val)if(strlen($val)>$maxPOSTsize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");}; foreach($_GET as $val)if(strlen($val)>$maxGETsize){die("<div class='warning'>Ответы вашего броузера серверу слишком длинные, сожалеем но это наше требование</div>");}; } Писал всё руками, если что-то не робит, отписывайтесь!!! Начнём по порядку: 1 функция function cheked_proxy() делает простую проверку на использование прокси 2 функция function checked_bot_crazy() - на мой взгляд самая крутая! что она делает: 1) Генерирует названия куки основываясь на HTTP заголовках клиента и отправляет их ему, название кукисов сгенерированно а их содержание это разрешение экрана которое берётся из яваскрипта(у ботов ведь нету разрешения, а написать бот который понимает js это целове дело) потом записывает имена куки в файл в дериктории logs/site_users/hashcoockie (hashcoockie это сам файл) далее если куки на клиенте найдены то снова генерирует название основываясь на хеадерах и сравнивает с тем что есть в базе, если всё впорядке то пропускает юзера дальше, если нет то умирает. Этим мы отсеиваем как я и сказал ботов. Даже если хакер подсунет из броузера куки то они не совпадут с генерируемым названием куки, так как у бота и броузера заголовки разные, как вы уже заметили в скрипте берутся такие вещи как $_SERVER['REMOTE_ADDR'] $_SERVER['HTTP_USER_AGENT'] и самое главное что никто никогда в ботах не высталяет это $_SERVER['HTTP_ACCEPT'] (какие файлы броузер понимает) Единственный возможный обход это полностью эдентичные заголовки в боте и броузере, но до этого злоумышленнику надо ещё догадаться!) И ещё 1 минус... про яндекс на сайте можно забыть(он же тоже бот...) Так следующая функция простой чек бота - cheked_bot_normal() посылает куки, редиректит и принимает куки, если всё ок то пропускает дальше Следующая довольно важная функция это checked_size_http_header() чекает заголовки на их размер, если размер превышает $maxheadersize то умирает cheked_size_post_and_get() тоже самое, проверяет велечину всех гет и пост запросов На страницу сайта вставляем так: include "файл с этими функциями"; И если надо активировать какую либо функцию то пишите в вашем файле index.php cheked_size_post_and_get(); название функции(это для тех кто синтаксис не знает  :lol: ) P.S. Мне тоже иногда плюсики нужны  :D P.P.S. Это кстати маленький отрывок PMW 1.5 думаю представляете будущий авторитет этого проекта скачать http://depositfiles....files/cp0tk3wtb
    Автор темы: Botchal, 20 июн 2010, ответов - 17, в разделе: PHP
  10. Botchal
  11. Botchal
  12. Botchal
  13. Botchal
    На хабрахабре откопал [ATTACH]
    Автор темы: Botchal, 16 июн 2010, ответов - 0, в разделе: Javascript и JQuery
  14. Botchal
  15. Botchal
    http://depositfiles.com/files/jj1pqwc9m
    Сообщение от: Botchal, 15 июн 2010 в разделе: HTML и CSS
  16. Botchal
  17. Botchal
     Теория: Чтобы накрутить счётчик нам нужно проходить по ссылке голосования на топ, на топах обычно стоит проверка по ip,куки, ну кое где стоит и каптча но вопрос про это дело времени!) Собсно что нам надо: 1-это изменять ip 2-менять заголовки(useragent итп) Для того чтобы менять ip нам потребуются прокси, откудо их взять ваше дело, я советаю брать списки элитных прокси так как они не возвращают ip использующего(например при проверке на сервере может стоять не $_SERVER['REMOTE_ADDR'] а $_SERVER['HTTP_CLIENT_IP']) а гавённое прокси сразу вас пропалит. Существует кууча прог для поиска и проверки прокси, на данный момент меня больше интересует кол-во прокси чем их качество поэтому я юзаю ProxyFinder скачать Теперь нам надо подготовить списки заголовков: Юзер агенты: берём например отсюда смотреть Список реферов: самим надо делать ибо только вы знаете ваши страницы, либо заюзать какойнить онлайн сео инструмент и получить список Теперь скрипт: <? $dataPROXY = file("proxy.txt"); $totalPROXY = count($dataPROXY); $sPROXY = mt_rand(0, $totalPROXY-1); $result_PROXY = $dataPROXY[$sPROXY]; $PROXY = str_replace("\r\n", "", $PROXY); $dataUA = file("ua.txt"); $totalUA = count($dataUA); $sUA = mt_rand(0, $totalUA-1); $result_UA = $dataUA[$sUA]; $UA = str_replace("\r\n", "", $resultUA); $dataREFERRER = file("referrer.txt"); $totalREFERRER = count($dataREFERRER); $sREFERRER = mt_rand(0, $totalREFERRER-1); $result_REFERRER = $dataREFERRER[$sREFERRER]; $REFERRER = str_replace("\r\n", "", $resultREFERRER); $ref = $REFERRER; $ua = $UA; $proxy_host=$PROXY; // цель $url="http://pw.mmotop.ru/vote/17008/";// цель // цель $ch=curl_init ($url); curl_setopt($ch, CURLOPT_PROXY, $proxy_host); curl_setopt($ch, CURLOPT_REFERER, $ref); // некоторые проверяют   curl_setopt ($ch, CURLOPT_HEADER, 1); // чтобы выводил заголовки curl_setopt ($ch, CURLOPT_NOBODY, 1); // чтобы не выводил саму страницу (она пока не нужна) curl_setopt($ch, CURLOPT_USERAGENT, $ua); // чтобы сказать что мы броузер, а не так себе... ob_start(); // первый раз ничего не нужно выводить (можно для отладки скрипта убрать) $htnl = curl_exec ($ch); curl_close ($ch); $headers = explode("\n", ob_get_contents()); // так можно получить массив всех заголовков от сервера ob_end_clean(); for ($i=0; $i<sizeof($headers); $i++) {   if (strpos($headers[$i], 'Set-Cookie:') !== FALSE)   {     list($field, $cookie[]) = explode(' ', $headers[$i]); // так можно получить куку (куки)   } } $ch=curl_init ($url); curl_setopt($ch, CURLOPT_PROXY, $proxy_host); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch, CURLOPT_HEADER, 0); // для отладки можно оставить 1 curl_setopt ($ch, CURLOPT_NOBODY, 1); // чтобы не выводил саму страницу (она пока не нужна) curl_setopt($ch, CURLOPT_USERAGENT, $ua); curl_setopt($ch, CURLOPT_REFERER, $ref); // некоторые проверяют   curl_setopt($ch, CURLOPT_POST, 1); // метод POST curl_setopt($ch, CURLOPT_POSTFIELDS, "".$login."=".$loginvalue."".$kill."&".$post1name."=".$post1value."&".$post2name."=".$post2value."&".$post3name."=".$post3value."&".$post4name."=".$post4value."&".$post5name."=".$post5value."&".$post6name."=".$post6value.""); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // это может понадобиться если будет редирект for ($i=0; $i<sizeof($cookie); $i++) {   curl_setopt($ch, CURLOPT_COOKIE, $cookie[$i]); // шлём cookie } $html = curl_exec($ch); curl_close($ch); echo $html; ?> НЕ ЗАБУДТЕ в томже каталоге разместить txt юзерагентов прокси и реферов Вот пример зачтения голоса [img] P.S. Не используйте во вред данный скрипт, если вы начнёте голосовать за конкурента через дермопрокси то скорее всего его забанят из топа и он лишится притока новых игроков а это фактически смерть сервера
    Автор темы: Botchal, 14 июн 2010, ответов - 12, в разделе: Веб
  18. Botchal
  19. Botchal
  20. Botchal
    Да не с каких, просто написал
    Сообщение от: Botchal, 12 июн 2010 в разделе: PHP