Поиск по сайту с помощью Яндекс XML и CURL

Решил на одном новом проекте реализовать поиск по сайту на основе Яндекс.XML. Сложного ничего нету, тем более, что на Яндексе есть готовый пример реализации такого поиска. Его надо было только доработать немного напильником под свои нужды и все будет Ok.

Но я все-равно столкнулся с проблемой. Хитрость в том, что надо в Яндексе зарегистрировать IP адрес с которого будет идти обращение к нему. И один IP может принадлежать только одному пользователю. Я, конечно, хитрый перец, быстренько проверил IP на котором размещен проект, сообразил, что его никто не использует и зарегистрировал быстренько. Но не тут-то было. При обращении к Яндексу, мне было сообщено, что запрос происходит совсем с другого адреса и вот именно этот другой адрес уже занят другим пользователем.

Я начал искать пути решения (смена ИП адреса, аренда дополнительного ИП или еще что нибудь) через техподдержку хостинга. И там мне разъяснили, что не смотря на то, что у сервера несколько IP, бывает используется только дефолтный. Но зато можно изменить его на другой прямо из php. И дали мне мудрую ссыль на решение проблемы.

В результате, я немного подправил это решение и смог задать нужный мне IP адресс. Если брать стандартный пример Яндекса реализации поиска по сайту на php, то вместо строки:

[/crayon]
мы ставим код типа такого:

[/crayon]
И все. Все запросы к Яндексу с указанного Вами IP адреса.

PS. Вот еще бы узнать, как список доступных IP адресов получить… 😉

2 комментария

  1. 😉 дарю… догадаетесь что подставить вместо 111.111.111.111 ?

    <?
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_VERBOSE,false);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_URL,"http://www.yandex.ru&quot;);
    for($i=1;$i++;$i<254){
    curl_setopt($ch,CURLOPT_INTERFACE,'111.111.111.'.$i);
    if (preg_match('#yandex\.net#si',curl_exec($ch))){
    echo '111.111.111.'.$i."\r\n";
    }

    }

  2. Спасибо за пост. Очень выручили =)
    Хотелось бы уточнить, что айпишники можно юзать только те, что ссылаются на сервер с вашим сайтом. В моем случае, их было всего 3. Я таки успел последний на себя записать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *