Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> cURL и Proxy 
:(
    Опции темы
Aliance
Дата 5.10.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Подключаюсь к серверу и хочу использовать прокси сервер, т.к. страница специально предназначена для парсинга, но не чаще раза в 5 минут. А мне нужно чаще. Посоветовали использовать прокси. Вот код, не работает:

Код

...
    $proxy_list = array(
        "200.47.10.10:8080",
        "130.104.72.200:3124",
        "200.163.47.193:8080"
    );

function whois($name, $bd_id) {

   global $server, $proxy_list, $link;

   $rnd = rand(0, 7);

   $ch = curl_init();

   curl_setopt($ch, CURLOPT_URL, "http://" . $server[$rnd] . "?login=" . urlencode($name) . "...");
   curl_setopt($ch, CURLOPT_PROXY, $proxy_list[$rnd]);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_REFERER, "http://www.mail.ru/");
...


Тоесть сервер меня блокирует временно из-за того, что я слишком часто его парсю. Соотв. прокси не помогает/работает. Может я с кодом напутал?
PM MAIL WWW ICQ Skype   Вверх
MuToGeN
Дата 5.10.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Попробуй установить следующие параметры:
CURLOPT_HTTPPROXYTUNNEL => true
CURLOPT_PROXYPORT => порт прокся
CURLOPT_PROXY => адрес прокси


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Aliance
Дата 6.10.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Понял, ошибка в 12 строчке.

Но спасибо за совет, сейчас буду пробовать!
PM MAIL WWW ICQ Skype   Вверх
Vaulter
Дата 6.10.2006, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



Aliance, зачем тебе рандом? иди по очереди.


--------------------
PM MAIL WWW ICQ   Вверх
Aliance
Дата 6.10.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



У меня есть функция. Так вот, каждый раз когда она вызывается, я хочу использовать рандомные адреса проксей.

Добавлено @ 16:23 
Цитата

Notice: Use of undefined constant CURLOPT_PROXYPORT - assumed 'CURLOPT_PROXYPORT'


Код

<?php

error_reporting(E_ALL);

$link = mysql_connect(...);

    if (!$link) die();
    if(!mysql_select_db(...)) die();

    $proxy_list = array(
        array("200.47.10.10", "8080"),
        array("130.104.72.200", "3124"),
        array("200.163.47.193", "8080")
    );

function whois($name, $bd_id) {

    global $proxy_list, $link;

    $rnd = rand(0, 7);
    $rnd2 = rand(0, 2);

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, ...);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    curl_setopt($ch, CURLOPT_PROXY, "http://" . $proxy_list[$rnd2][0]);
    curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_list[$rnd2][1]);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.mail.ru/");

    $info = curl_exec($ch);

    if (curl_errno($ch)) return false;
}

whois("Aliance", 1);

mysql_close($link);

?>

PM MAIL WWW ICQ Skype   Вверх
MuToGeN
Дата 12.10.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата(Aliance @  6.10.2006,  16:14 Найти цитируемый пост)
У меня есть функция

Код

function blabla() {
    static $i;
    $i++;
    $i %= count($proxy_list);
}
?
Кстати
Ты уверен, что все 8 проксей доступны по всем 3м портам?


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Aliance
Дата 12.10.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



MuToGeN, не очень тебя понял. В коде выше у меня перечислено 3 прокси. Недавно нашел другие, теперь их у меня больше, изменил. Но все прокси - проверенные проксичекером. Но результата никакого. Код последний таков:
Код

<?php

error_reporting(E_ALL);

$link = mysql_connect(...);

    if (!$link) die();
    if(!mysql_select_db(...)) die();

    $server = array(...);

    $proxy_list = array(
        array("211.178.7.70", "8080"),
        array("125.138.133.168", "1930"),
        array("200.176.25.117", "6588"),
        array("201.17.174.240", "6588"),
        array("201.37.214.107", "6588"),
        array("59.30.41.203", "8080"),
        array("219.25.26.97", "8080")
    );

function whois($name) {

    global $server, $proxy_list, $link;

    $rnd = rand(0, 7);

    // proxy random...
    $rnd2 = rand(0, 6);

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, "http://" . $server[$rnd] . "inf.pl?login=" . urlencode($name) . "&short=1");
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    curl_setopt($ch, CURLOPT_PROXY, "http://" . $proxy_list[$rnd2][0]);
    curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_list[$rnd2][1]);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.mail.ru/");

    $info = curl_exec($ch);

    if (curl_errno($ch)) return false;
}

whois("Aliance spb");

mysql_close($link);

?>


Это сообщение отредактировал(а) Aliance - 12.10.2006, 18:17
PM MAIL WWW ICQ Skype   Вверх
MuToGeN
Дата 12.10.2006, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Цитата(MuToGeN @  12.10.2006,  17:22 Найти цитируемый пост)
все 8 проксей доступны по всем 3м портам

- имел ввиду, что у тебя есть ip1:por1, ip2:port2 и ip3:port3. Будут варианты, при которых скрипт будет ломиться на ip1:port2 или ip2:port1. Не заметил, что используется только $rnd2 (резонный вопрос - зачем тогда $rnd?)

Насчет переключения проксей по очереди - 
Код
<?php
function whois($name) {
    global $server, $proxy_list, $link;
    static $i = -1;
    $i++;
    $i %= count($proxy_list);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://" . $server[$rnd] . "inf.pl?login=" . urlencode($name) . "&short=1");
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
    curl_setopt($ch, CURLOPT_PROXY, "http://" . $proxy_list[$i][0]);
    curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_list[$i][1]);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.mail.ru/");
    $info = curl_exec($ch);
    if (curl_errno($ch)) return false;
}
?>



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Aliance
Дата 12.10.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Не будет каненчо. Глянь внимательнее на скрипт, перменная $rnd нужна для 33 строчки, она не имеет отношения к прокси.

На счет переключения проксей по очереди, теперь понял. Только разве это что-то решает?
Не думаю, что проблема пройдет.
PM MAIL WWW ICQ Skype   Вверх
CyClon
Дата 5.11.2006, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Сорри, может не в тему, но...

Aliance, это в девиле новую антифлуд защиту поставили? А то у меня скрипт на девилсе загинается, а остальные города нормально пашут. Может тоже придется прокси юзать.

Добавлено @ 20:25 
Цитата
Но результата никакого.


В смысле? Пустая страница, ошибка, зависание???


--------------------
user posted image
PM   Вверх
Aliance
Дата 5.11.2006, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Не в курсе. А у тебя есть рабочий вариант? Не поделишься?
PM MAIL WWW ICQ Skype   Вверх
CyClon
Дата 6.11.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



У меня на fsockopen, он на девилсити загинается при часто обновлении.


--------------------
user posted image
PM   Вверх
KPOT
Дата 29.11.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Если не жалко в студию бжалосто, очень актуально! Зацепило.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.