Помогите побороть Яндекс.XML

Тема в разделе "Как сделать...", создана пользователем jon4god, 28 ноя 2015.

  1. jon4god

    jon4god

    Регистр.:
    13 авг 2009
    Сообщения:
    213
    Симпатии:
    50
    Мне нужно узнать проиндексирована ли страница в Яндексе. Родилось вот такое. Сидит в Wordpress.

    Код:
      $url = 'https://yandex.ru/search/xml?user=' . get_option('setting_user') . '&key=' . get_option('setting_user_key') . '&query='. get_permalink() . '';
      $ip = get_option('setting_user_ip');
     
      function autocheckyandex ($url, $ip) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_NOBODY, false);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
        curl_setopt($ch, CURLOPT_INTERFACE, $ip);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $xml_data = curl_exec($ch);
        curl_close($ch);
        $xml = new SimpleXMLElement($xml_data);
        $xml_url = $xml->response->results->grouping->group->doc->url;
        if ($xml_url = get_permalink()) $checkyandex = 1;
        return $checkyandex;
      }
      $checkyandex = autocheckyandex ($url, $ip);
    А смена IP на зарегистрированный в Яндекс.XML не происходит. "Запрос пришёл с IP-адреса ..., не входящего в список разрешённых для данного пользователя". Все равно IP хостинга выдает, на котором уже кто-то сидит.
    Куда рыть? Что делать? Может есть способ элегантней?
     
  2. smiler

    smiler

    Регистр.:
    7 ноя 2006
    Сообщения:
    427
    Симпатии:
    423
    Можно сделать так: арендовать за 1$ VPS в США и установить на нем прокси-сервер. В сервисе Я-xml указать ip-адрес этого VPS.
    И добавить в свой код строку:
    curl_setopt($ch, CURLOPT_PROXY, "$proxy");
    в переменную $proxy засунуть ip-адрес этого VPS.
     
    jon4god нравится это.
  3. jon4god

    jon4god

    Регистр.:
    13 авг 2009
    Сообщения:
    213
    Симпатии:
    50
    Думал о чём-то похожем, но хочу это в плагин засунуть. Нужно что-то не такое персонализированное.
     
  4. smiler

    smiler

    Регистр.:
    7 ноя 2006
    Сообщения:
    427
    Симпатии:
    423
    Ну, тогда переехать к другому хостеру, у которого ip не добавлен в Я-XML :)
     
  5. jon4god

    jon4god

    Регистр.:
    13 авг 2009
    Сообщения:
    213
    Симпатии:
    50
    :conf: Не выход. Ладно, буду кумекать дальше. :confused:
     
  6. lehasv

    lehasv Создатель

    Регистр.:
    10 ноя 2015
    Сообщения:
    12
    Симпатии:
    2
    Ты хочешь прокс прикрутить?
     
  7. jon4god

    jon4god

    Регистр.:
    13 авг 2009
    Сообщения:
    213
    Симпатии:
    50
    Мне просто нужен рабочий вариант. smiler написал уже про прокси. И прикрутить я сам могу его, но мне нужно, чтобы решение было персонализировано. В идеале, чтобы чел, где бы он не находился, официально регистрировался в яндекс.xml и у него работает с указанными при регистрации user, key&ip. И яндекс.xml не смотрел на каком ip все запускается.