Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определить ТИЦ ресурса [4]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (6): « 1 2 3 [4] 5 6 »   

> Описание: вытащить из xml
vsll
Отправлено: 13 Апреля, 2011 - 11:45:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Цитата:
Кроме того, не вижу действия для "плохих прокси" (а есть только для "хороших", как я понял)
Этот метод предложил Champion, а я вообще плохо понимаю, что я тут делаю))) чисто интуитивно )))
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['check_proxies'])) {
  2.  
  3. $check = dbquery("SELECT proxies_id, proxies_good FROM ".DB_PROXIES." ORDER BY proxies_id");
  4. function tryProxy($proxy) { // $proxy подразумевается, что имеет вид ip:port (111.111.111.111:3128)
  5.         $ch = curl_init();
  6.         $failed = 0;   // счетчик неудачных попыток
  7.         for($i = 0; $i < 5; $i++) { // 5 раз пробуем получить тестовую страницу
  8.                 curl_setopt($ch, CURLOPT_URL, "http://ru.yahoo.com/");
  9.                 curl_setopt($ch, CURLOPT_PROXY, $proxy);
  10.                 curl_setopt($ch, CURLOPT_TIMEOUT, 3000); // ждать страницу будем не более 3 секунд
  11.                 $ss=curl_exec($ch);
  12.                 if (++$failed > 2) // если произошло более 2 неудач, заканчиваем с этим прокси. Ретурн прям тут должен быть. Ретурн false можно поставить тут
  13.                         curl_close($ch);
  14.         }
  15.         return $failed; // а тут retuen true...
  16. }
  17.  
  18. while ($row = dbarraynum($check)) {
  19.         if (tryProxy($row['proxies_good']) == 2) { // А тут просто написать if (tryProxy($row[...]))
  20.                 dbquery("INSERT INTO ".DB_PROXY_RES." (proxy_res_bad)");       
  21.                 dbquery("DELETE FROM ".DB_PROXIES."");
  22.         }
  23. }
  24.  
  25. redirect(FUSION_SELF.$aidlink);
  26. }


Отредактировано модератором: Champion, 13 Апреля, 2011 - 20:35:59
 
 Top
Champion Супермодератор
Отправлено: 13 Апреля, 2011 - 20:31:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ну я бы не стал хранить их в 2 таблицах. Я бы хранил в одной и:
- либо имел столбец "рабочий-нерабочий" и обновлял бы этот столбец в зависимости от последнего теста прокси;
- либо просто сохранял test_time - среднее время, за которое прокси получил страницу во время тестов (из 5 попыток). Ну а при выборки прокси для использования брал бы те, которые с удовлетворительным test_time.
EuGen пишет:
Кроме того, не вижу действия для "плохих прокси" (а есть только для "хороших", как я понял)
А я наоборот заметил перемещение прокси из хорошего в плохой)
Vasiliya пишет:
а я вообще плохо понимаю, что я тут делаю)))
Прокомментировал код в твоем сообщении
 
 Top
vsll
Отправлено: 14 Апреля, 2011 - 13:33:55
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Champion у меня уже другая идея, если получится, то напишу здесь, но скорей всего не получица )))
 
 Top
Champion Супермодератор
Отправлено: 14 Апреля, 2011 - 14:22:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Ну не получится, доведем до ума)
 
 Top
vsll
Отправлено: 14 Апреля, 2011 - 16:49:35
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1. $webpage = "detect.php";
  2. $timeout = 10;
  3. $head="GET $webpage HTTP/1.1\r\n\r\n";
  4.  
  5. $list = dbquery("SELECT proxies_id, proxies_good FROM ".DB_PROXIES." ORDER BY proxies_id");
  6.  
  7. while ($check = dbarray($list)) {
  8.    
  9.     echo $check['proxies_id'].") Проверка <b>".$check['proxies_good']."</b>.......";
  10.     $server = explode(":", $check['proxies_good']);
  11.     $fp = @fsockopen($server[0], $server[1], $errno, $errstr, $timeout);
  12.     if($fp) {
  13.         unset($result);
  14.         fputs($fp,$head);
  15.         while(!feof($fp)) {
  16.            $returndata = fread($fp,1024);
  17.         }
  18.         $result = explode("|||",$returndata);
  19.         echo "Прокси живой";
  20.         if (trim($result[1])=="") {
  21.           echo "и анонимный... \n\n";
  22.         } else {
  23.          echo "но не анонимный...\n\n";
  24.         }
  25.         fclose($fp);
  26.    } else {
  27.       echo "(".$errno.") ".$errstr."\n\n";
  28.    }
  29. }
  30.  


detect.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo $_SERVER['REMOTE_ADDR']."|||".$_SERVER['HTTP_X_FORWARDED_FOR']."|||";
  3. ?>


результат:

65) Проверка 73.167.47.197:80.......(60) Operation timed out 68) Проверка 67.192.253.140:80.......Прокси живой
Notice: Undefined offset: 1 in ...
и анонимный...

не получается проверка на анонимность

(Отредактировано автором: 14 Апреля, 2011 - 18:00:24)

 
 Top
Champion Супермодератор
Отправлено: 14 Апреля, 2011 - 18:30:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Неужели курлом не проще?)
Надо посмотреть $returndata какой приходит.
Vasiliya пишет:
echo $_SERVER['REMOTE_ADDR']."|||".$_SERVER['HTTP_X_FORWARDED_FOR'].
У меня есть подозрение, что HTTP_X_FORWARDED_FOR если будет, то будет всегда. Только для анонимных проксей он будет совпадать с адресом прокси, а для не анонимных он будет совпадать с тем адресом, который имеем мы.
Поэтому одного explode может быть мало. Нужно поискать в строке свой ip.
 
 Top
vsll
Отправлено: 15 Апреля, 2011 - 12:55:32
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Champion пишет:
Неужели курлом не проще?)
только сейчас заметила, что вы там всё хорошо расписали, но в вашем методе нет проверки на анонимность, поэтому я решила попробовать этот метод, хотя здесь проверка на анонимность тоже пока не получается
 
 Top
Stierus Супермодератор
Отправлено: 15 Апреля, 2011 - 13:02:17
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




уж тыж, чего эт вы тут на 4 листа уже наобсуждали ?Улыбка
 
My status
 Top
vsll
Отправлено: 15 Апреля, 2011 - 13:05:52
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Stierus пишет:
уж тыж, чего эт вы тут на 4 листа уже наобсуждали ?
как не схватить бан от яндекса )))
 
 Top
Champion Супермодератор
Отправлено: 15 Апреля, 2011 - 13:08:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Vasiliya пишет:
но в вашем методе нет проверки на анонимность
Я в самам начале его написал)
(Добавление)
Stierus пишет:
на 4 листа
А у меня 2 листа. У меня сообщений на листе больше)
 
 Top
vsll
Отправлено: 15 Апреля, 2011 - 13:10:13
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Champion пишет:
Я в самам начале его написал)
в начале чего? не могу найти
Цитата:
Что-то в этой теме я не нашел, где я писал. Может быть ты еще одну создавала?) Я там точно упомянул про X_FORWARDED_FOR что и как. Точно помню ,была вторая тема!)
в этой теме точно нету, я ctrl+F всё проверила

(Отредактировано автором: 15 Апреля, 2011 - 13:15:59)

 
 Top
Champion Супермодератор
Отправлено: 15 Апреля, 2011 - 13:11:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Что-то в этой теме я не нашел, где я писал. Может быть ты еще одну создавала?) Я там точно упомянул про X_FORWARDED_FOR что и как. Точно помню ,была вторая тема!)
 
 Top
vsll
Отправлено: 15 Апреля, 2011 - 14:56:38
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Champion пишет:
Поэтому одного explode может быть мало. Нужно поискать в строке свой ip.
да нет, я думаю это работает, только у меня не получается вот так вот с лёту из-под админки подключить в этот файл другой, либо из-за защиты, либо из-за того что сам алгоритм написан под работу с файлом, а не с бд, вот это, что

p.s. не могу найти, не помню что и где уже создавала
 
 Top
Stierus Супермодератор
Отправлено: 15 Апреля, 2011 - 15:07:16
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




ммм, че ж за бан такой от Яндекса, избежать которого помогает X_FORWARDED_FOR ?
 
My status
 Top
vsll
Отправлено: 15 Апреля, 2011 - 15:12:57
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




Stierus пишет:
ммм, че ж за бан такой от Яндекса, избежать которого помогает X_FORWARDED_FOR ?
когда постоянно хочешь слишком много и сразу знать о мнении яндекса о проиндекированных им ресурсах )
 
 Top
Страниц (6): « 1 2 3 [4] 5 6 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB