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 :: Определить ТИЦ ресурса [3]

 PHP.SU

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


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

> Описание: вытащить из xml
vsll
Отправлено: 06 Апреля, 2011 - 18:06:50
Post Id


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


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


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




Цитата:
Это значит, что оно лежит в старых архивах, которые пока, к сожалению, нет времени поднимать и просматривать.

не знаю, я ламер полный и не мне вас учить, но я всегда юзаю notepad -> найти в файлах -> proxy_judge (например)
поищите, pls очень интересно попробовать) Улыбка

(Отредактировано автором: 06 Апреля, 2011 - 18:07:34)

 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2011 - 18:12:19
Post Id



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


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


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




Vasiliya для EuGenа скорее подойдет: ~$ grep -o "proxy_judge" -r /
Закатив глазки
 
 Top
vsll
Отправлено: 06 Апреля, 2011 - 18:15:51
Post Id


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


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


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




DeepVarvar пишет:
Vasiliya для EuGenа скорее подойдет: ~$ grep -o "proxy_judge" -r /

Я же говорю я ламер, пыталась год назад на одном компе установить win и unix, убила один жёсткий диск, на том и дело встало, только из под win могу более или менее осознанно разговаривать)))
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Апреля, 2011 - 18:17:57
Post Id



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


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


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




Vasiliya почему же ламер? Если дело дошло до никсов - уже не ламер. Дальше - дело практики.
 
 Top
vsll
Отправлено: 06 Апреля, 2011 - 18:20:13
Post Id


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


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


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




DeepVarvar пишет:
Vasiliya почему же ламер? Если дело дошло до никсов - уже не ламер. Дальше - дело практики.

Так приступим же к практике: что означает "никсы"? )))))
 
 Top
Мелкий Супермодератор
Отправлено: 06 Апреля, 2011 - 18:33:28
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Vasiliya пишет:
Так приступим же к практике: что означает "никсы"? )))))

Богиня ночи в греческой мифологии и спутник Плутона (c) вики Радость

А в IT-среде - обозначение всего семейства *nix: Unix, Linux, *BSD сюда же как правило относят.


-----
PostgreSQL DBA
 
 Top
vsll
Отправлено: 06 Апреля, 2011 - 18:41:10
Post Id


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


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


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




Мелкий пишет:
Богиня ночи в греческой мифологии и спутник Плутона (c) вики

А в IT-среде - обозначение всего семейства *nix: Unix, Linux, *BSD сюда же как правило относят.

Спасибо, теперь с такими познаниями, вознесусь до хакера
 
 Top
EuGen Администратор
Отправлено: 07 Апреля, 2011 - 09:01:13
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Дело не в затруднении с методом поиска.
Если вы мне здесь напишете команду, которая сделает 1-й операцией
0. Найдет все старые диски (да-да, CD/DVD) у меня на работе и дома
1. Рассортирует их (при этом, возможно, проверив на соответствие тематике)
2. Поищет на каждом диске в архиве нужные данные (а там может быть не только zip/gzip, поиск в которых возможен, но и rar какой-нибудь)
3. Найдет и извлечет нужный проект

то буду признателен. Я, увы, еще не достиг такой степени профессионализма.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 08 Апреля, 2011 - 15:33:42
Post Id


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


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


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




EuGen пишет:
Если вы мне здесь напишете команду, которая сделает 1-й операцией
0. Найдет все старые диски (да-да, CD/DVD) у меня на работе и дома
1. Рассортирует их (при этом, возможно, проверив на соответствие тематике)

могу лишь предложить взамен на скрипт проверки проксей, малюсенькую программку (про которую уже все давно забыли), которая за 1мин найдёт вам 2000 проксей, из которых 10%-20% - хорошие (правда только из под win, но установки и регистрации не требует).
Уже отработано:
PHP:
скопировать код в буфер обмена
  1. function get_contents($url, $proxy) {
  2.         $ch = curl_init();  
  3.         curl_setopt($ch, CURLOPT_URL, $url);
  4.         curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  5.         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.16) Gecko/20110319');
  6.         curl_setopt($ch, CURLOPT_PROXY, $proxy);
  7.         $ss=curl_exec($ch);
  8.         curl_close($ch);
  9.         return $ss;
  10. }
  11.  

PHP:
скопировать код в буфер обмена
  1. $proxies = '91.143.58.1:9000';
  2. preg_match('/<tcy[^>]+value="([^"]*)"/i', get_contents('http://blablabla.ru/u?url='.$host[0].'&show=1', $proxies), $m);


нужна только функция, которая откроет txt файл у меня на сервере и вытащит первый попавшийся рабочий прокси.

$proxies = good_proxy(); например

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

 
 Top
Champion Супермодератор
Отправлено: 08 Апреля, 2011 - 19:35:34
Post Id



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


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


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




Vasiliya пишет:
оторая откроет txt файл у меня на сервере и вытащит первый попавшийся рабочий прокси
Лучше по крону мониторить все прокси и заранее удалять нерабочие. Или не удалять, а просто разделять на 2 файла: с рабочими и нерабочими (вдруг заработают).
А еще лучше - писать их в БД.
 
 Top
vsll
Отправлено: 08 Апреля, 2011 - 20:01:39
Post Id


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


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


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




Champion а чем их мониторить? в сети подобный код либо на дельфи, либо на перл, и там и там я полный ноль, в php +1, но такую функцию сама не напишу

а для pr свой способ:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $googlehost='toolbarqueries.google.com';
  4. $googleua='Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.9) Gecko/20100616 Firefox/3.5.9';
  5.  
  6. function StrToNum($Str, $Check, $Magic) {
  7.     $Int32Unit = 4294967296;
  8.  
  9.     $length = strlen($Str);
  10.     for ($i = 0; $i < $length; $i++) {
  11.         $Check *= $Magic;      
  12.         if ($Check >= $Int32Unit) {
  13.             $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
  14.             $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
  15.         }
  16.         $Check += ord($Str{$i});  
  17.     }
  18.     return $Check;
  19. }
  20.  
  21. function HashURL($String) {
  22.     $Check1 = StrToNum($String, 0x1505, 0x21);
  23.     $Check2 = StrToNum($String, 0, 0x1003F);
  24.  
  25.     $Check1 >>= 2;      
  26.     $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
  27.     $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
  28.     $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);    
  29.      
  30.     $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
  31.     $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
  32.      
  33.     return ($T1 | $T2);
  34. }
  35.  
  36. function CheckHash($Hashnum) {
  37.     $CheckByte = 0;
  38.     $Flag = 0;
  39.  
  40.     $HashStr = sprintf('%u', $Hashnum) ;
  41.     $length = strlen($HashStr);
  42.      
  43.     for ($i = $length - 1;  $i >= 0;  $i --) {
  44.         $Re = $HashStr{$i};
  45.         if (1 === ($Flag % 2)) {              
  46.             $Re += $Re;      
  47.             $Re = (int)($Re / 10) + ($Re % 10);
  48.         }
  49.         $CheckByte += $Re;
  50.         $Flag ++;    
  51.     }
  52.  
  53.     $CheckByte %= 10;
  54.     if (0 !== $CheckByte) {
  55.         $CheckByte = 10 - $CheckByte;
  56.         if (1 === ($Flag % 2) ) {
  57.             if (1 === ($CheckByte % 2)) {
  58.                 $CheckByte += 9;
  59.             }
  60.             $CheckByte >>= 1;
  61.         }
  62.     }
  63.  
  64.     return '7'.$CheckByte.$HashStr;
  65. }
  66.  
  67. function getch($url) { return CheckHash(HashURL($url)); }
  68.  
  69. function getpr($url) {
  70.     global $googlehost,$googleua;
  71.     $ch = getch($url);
  72.     $fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
  73.                 if ($fp)
  74.                 {
  75.                 $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
  76.                 $out .= "User-Agent: $googleua\r\n";
  77.                 $out .= "Host: $googlehost\r\n";
  78.                 $out .= "Connection: Close\r\n\r\n";
  79.      
  80.                 fwrite($fp, $out);
  81.                         while (!feof($fp))
  82.                         {
  83.             $data = fgets($fp, 128);
  84.             $pos = strpos($data, "Rank_");
  85.                                 if($pos === false)
  86.                                 {}
  87.                                 else
  88.                                 {
  89.                 $gpr=substr($data, $pos + 9);
  90.                 $gpr=trim($gpr);
  91.                 $gpr=str_replace("\n",'',$gpr);
  92.                                 if (isset($gpr)) $pr=$gpr;
  93.                         }
  94.                }
  95.                 if (!isset($pr)) $pr="0";
  96.                 return $pr;
  97.                 fclose($fp);
  98.                 }
  99. }
  100.  
  101. ?>

этот точные значения получает, а как тут прокси вклинить я не знаю

(Отредактировано автором: 08 Апреля, 2011 - 20:27:00)

 
 Top
Champion Супермодератор
Отправлено: 08 Апреля, 2011 - 20:23:16
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM proxy";
  2. while(fetch_row) {
  3.         if (tryProxy($row[ip], $row[port]) == хорошо) update proxy set хорошо; else set плохо;
  4. }
  5.  
  6. function tryProxy($proxy_ip, $proxy_port) {
  7.         $ch = curl_init();
  8.         $failed = 0;   
  9.         for($i = 0; $i < 5; $i++) {
  10.                 curl_setopt($ch, CURLOPT_URL, $test_url);
  11.                 curl_setopt($ch, CURLOPT_PROXY, $proxy);
  12.                 curl_setopt($ch, CURLOPT_TIMEOUT, 3000);
  13.                 $ss=curl_exec($ch);
  14.                 (!preg_match('/чтонибудь/', $ss)) and (++$failed > 2) and break;
  15.         }
  16.         retrun $failed > 2 ? плохой : хороший;
  17. }


$test_url - какая-нибудь страничка, на которой что-то есть. Может быть страничка на одном из своих серверов, на которой происходит var_dump($_SERVER) - тогда можно проверить и анонимность прокси, сматчив свой ip с полученной страницы.
Может быть и url того ресурса, который планируется посещать через прокси, чтобы убедиться, что прокси удовлетворительно работает именно с ним
 
 Top
vsll
Отправлено: 08 Апреля, 2011 - 20:30:06
Post Id


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


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


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




Champion спасибо завтра попробую Улыбка
 
 Top
vsll
Отправлено: 12 Апреля, 2011 - 18:55:12
Post Id


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


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


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




Champion Не перемещает плохие прокси в бд резервных прокси при проверке бд с хорошими прокси, что не так (грубых нарушений синтакса нет, просто после нажатия кнопки check proxies кроме перезагрузки страницы ничего не происходит). Вот код, немножко транслитировала названия:

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['check_proxies'])) {
  2.  
  3. $check = dbquery("SELECT хор_прокси_id, хор_прокси_норма FROM ".DB_ХОР_ПРОКСИ." ORDER BY хор_прокси_id");
  4. $all = dbcount("(хор_прокси_id)", DB_ХОР_ПРОКСИ, "");
  5.  
  6. function tryProxy($proxy) {
  7.         $ch = curl_init();
  8.         $failed = 0;  
  9.         for($i = 0; $i < $all; $i++) {
  10.                 curl_setopt($ch, CURLOPT_URL, "http://ru.yahoo.com/");
  11.                 curl_setopt($ch, CURLOPT_PROXY, $proxy);
  12.                 curl_setopt($ch, CURLOPT_TIMEOUT, 3000);
  13.                 $ss=curl_exec($ch);
  14.                 if (++$failed > 2) curl_close($ch);
  15.         }
  16.         return $failed;
  17. }
  18.  
  19. while ($row = dbarraynum($check)) {
  20.         if (tryProxy($row['хор_прокси_норма']) == 2) {
  21.                 dbquery("INSERT INTO ".DB_ПЛОХ_ПРОКСИ." (плох_прокси_ненорма)");       
  22.                 dbquery("DELETE FROM ".DB_ХОР_ПРОКСИ."");
  23.         }
  24. }
  25.  
  26. redirect(FUSION_SELF.$aidlink);
  27. }

PHP:
скопировать код в буфер обмена
  1. function dbarraynum($query) {
  2.         $result = @mysql_fetch_row($query);
  3.         if (!$result) {
  4.                 echo mysql_error();
  5.                 return false;
  6.         } else {
  7.                 return $result;
  8.         }
  9. }

dbcount - функция, которая считает все прокси в таблице, она работает
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo "<form name='proxysend' method='post'>\n";
  3. echo "<p><input type='submit' name='check_proxies' value='".$locale['607']."' class='button' /></p>\n";

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

 
 Top
EuGen Администратор
Отправлено: 12 Апреля, 2011 - 20:01:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




for($i = 0; $i < $all; $i++) {
А что такое $all ? в области видимости функции не вижу инициализации.
Кроме того, не вижу действия для "плохих прокси" (а есть только для "хороших", как я понял)
И не нужно ничего "транслитерировать" - пишите как есть.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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