За последние 24 часа нас посетили 62105 программистов и 1790 роботов. Сейчас ищут 897 программистов ...

Как запустить php-скрипт от другого IP-адреса (не cURL'ом)?

Тема в разделе "Прочие вопросы по PHP", создана пользователем mFrance, 4 сен 2013.

  1. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    php-скрипт, запрашивающий страницу с сайта (file_get_contents) приходит на этот сайт, имея IP-адрес выделенного виртуального сервера, на котором запускается. С помощью cURL можно назначить адрес proxy-сервера. Это понятно.

    Но надо запустить такой скрипт
    <?php
    $exec = shell_exec('/usr/local/bin/phantomjs script.js');
    ?>
    Он тоже получает страницу, но с помощью phantomjs, поэтому cURL не подходит...
    Как можно вызвать этот скрипт (назовём его get.php) так, чтобы он имел для сайта ДРУГОЙ IP-адрес, не свой?

    Спасибо за любые мнения, намёки, рассуждения!
    P.S. опция phantomjs --proxy=xxx.xxx.xxx.xxx:xxxx - НЕ работает в моём случае :-((((((((((
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    allow_url_include
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    phantomjs запускается в системе, это отдельный процесс, сетевые параметры, установленные в php-скрипте на него никак не влияют.
    Есть два пути:
    1) разобраться с --proxy. Возможно, phantomjs не поддерживает socks-прокси, а только HTTP, или наоборот, или поддерживает только socks 4, короче возможно ты ему даешь неподходящую прокси
    2) настроить соединение через прокси глобально, на всем сервере (нужен root на сервере)
     
  4. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    Спасибо за ответы!
    MAN_IFE_ST, поясните, пожалуйста, немного, как именно в этом случае использовать функцию include или require

    function curl_get_contents($url)
    {
    $page = "";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOPROGRESS, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_PROXY, '120.197.85.181:80');
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; YandexImageResizer/2.0)');

    $page = curl_exec($ch);
    curl_close($ch);
    return $page;
    }

    echo curl_get_contents("http://2ip.ru"); // Показывает адрес прокси - всё правильно

    А куда добавить include - не пойму...

    Добавлено спустя 22 минуты 33 секунды:
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'ом)?
    Уважаемый [vs], Вы правы, прокси-сервера почти не работают. Перепробовали десятки и http, и socks серверов ( у phantomjs есть опция --proxy-type=[http|socks5|none] ), еле-еле найдётся хоть один сервер, который получит эту несчастную страничку - но потом второй раз - уже нет!
    В чём дело - непонятно - или в phantomjs или в настройках выделенного сервера

    Подскажите, пожалуйста, если всё это хозяйство находится и запускается на выделенном виртуальном сервере (хостинг 1Gb.ru)
    root на сервере есть, установим proxy-сервер, например, Squid, где и что потом прописать, чтобы все запускаемые на этом выделенном сервере php-скрипты имели новый прокси IP-адрес?
    Спасибо!
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    Прокси, установленный на том же сервере, будет иметь тот же адрес ) Я имею ввиду, что после того, как ты нашел рабочий прокси-сервер, можно настроить чтобы все соединения сервера с интернетом были через него
    мб работает 92.224.5.23:46271 это сокс 5
     
  6. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    Спасибо огромное!
    в /root/.bashrc добавлено в конец:
    export http_proxy='http://120.197.85.181:80/'
    export ftp_proxy='http://120.197.85.181:80/'

    Apache перезагружен

    Простой скрипт
    <?php
    echo file_get_contents("http://2ip.ru");
    ?>
    выводит СТАРЫЙ IP-адрес :-((((

    Что не так? :)

    С большим уважением, Анна.
     
  7. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    А никто не просил использовать проксик, поэтому пошел напрямую.
     
  8. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    А как "попросить"? :)
    Мне казалось, что если "Чтобы не указывать настрой прокси в каждой отдельной программе, можно задать соответствующие переменные среды окружения." - то тогда все выходы в интернет будут через прокси...
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    возможно нужно перезапустить сетевые службы. В консоли:
    Код (Text):
    1. sudo service networking stop
    2. sudo service networking start
    или вообще сервер =)
    Код (Text):
    1. sudo reboot now
    это всё для Ubuntu.
     
  10. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    На форуме ubuntu мне посоветовали

    /etc/environment

    ftp_proxy=http://proxy.example.org:3128/
    FTP_PROXY=http://proxy.example.org:3128/
    http_proxy=http://proxy.example.org:3128/
    HTTP_PROXY=http://proxy.example.org:3128/
    https_proxy=http://proxy.example.org:3128/
    HTTPS_PROXY=http://proxy.example.org:3128/
    no_proxy='localhost,127.0.0.0/8,::1,*.example.org'
    NO_PROXY='localhost,127.0.0.0/8,::1,*.example.org'

    Сделали (с кавычками и без), но скрипт запускается всё так же от основного IP-адреса выделенного сервера...

    Что же можно ещё придумать? :)

    Добавлено спустя 40 секунд:
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'ом)?
    Да, выделенный сервер, конечно, перезагрузили после этого
     
  11. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о

    Можно еще придумать попробовать поиспользовать mod_proxy для апачу.
    Код (Text):
    1.  
    2. ProxyRemote http://host:port
    3. ProxyRemote * http://host
    4. ProxyRemote ftp http://host:port