.
10 марта 2010

GET запрос в PHP с разных IP адресов

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (4 оценок, среднее: 5.00 из 5)
posted in SEO, Полезности, Программирование |

Всем привет!

2 недели ничего не писал — был в отпуске — времени совсем на онлайн не было !
Отдохнул в кавычках — с двумя детьми ( 01.02.2010 девочку Катю родили ) отдых получается специфический ;)

Ладно — потихоньку нужно входить в рабочее русло, и первый пост после отпуска я решил написать в помощь программистам пишущим разнообразные парсеры и граберы реазизующим сию задачу на PHP и ещё не ведающим как же можно организовать GET запрос с разных IP адресов.

Про эту задачу вспомнил при реализации Яндекс Wordstat парсинга (сервис будет «прикручен» к моему сервису MySEO для управления ссылками на своих ресурсах), кстати ноль ноль ноль первая бета версия уже готова :)

ИТАК на PHP мне известны 2 метода запроса с разных айпишников:

Первый с использованием библиотеки curl — нужно заюзать опцию CURLOPT_INTERFACE
Второй на сокетах — для привязки айпишника нужно использовать socket_bind

вот рабочий код:

<?php
	$url = "http://gtalex.ru/seo/ip.php";
 
	echo "<h1>CURLOPT_INTERFACE</h1>";
 
	$get = curl_init();
	curl_setopt($get, CURLOPT_URL, $url); 
//	curl_setopt($get, CURLOPT_INTERFACE,'87.118.116.130'); 
	curl_setopt($get, CURLOPT_INTERFACE,'87.118.117.130'); 
	curl_setopt($get, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($get, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($get, CURLOPT_TIMEOUT, 60);
 
	$buf = curl_exec($get);
	echo $buf;
 
	echo "<h1>socket_bind</h1>";
 
	$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Unable to create socket\n");
//	socket_bind($sock, '87.118.116.130');
	socket_bind($sock, '87.118.117.130');
	socket_connect($sock, 'gtalex.ru', 80);
 
	$request  = "GET /seo/ip.php HTTP/1.1\r\n";
	$request .= "Host: gtalex.ru\r\n";
	$request .= "Connection: Close\r\n\r\n";
 
	socket_write($sock, $request);
 
	$buff= "";
	do {
		$recv = "";
		$recv = socket_read($sock, '1400');
		if($recv != "") {
			$buff .= $recv;
		}
	} while($recv != ""); 
 
	socket_close($sock);
 
	echo $buff;
?>

В моем случае имею два подопытных айпишника 87.118.117.130 и 87.118.116.130
По умолчанию используется 87.118.116.130. В вышеупомянутом скриптике я двумя способами подменяю айпишник на 87.118.117.130
Для просмотра результатов использую скриптик отображающий откуда его дёргают http://gtalex.ru/seo/ip.php

Приятного граббинга !

Post to Twitter ReTweet

Похожие статьи

  • No related posts

У нас куча комментариев (12) на запись “GET запрос в PHP с разных IP адресов”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 10.03.2010, Денис said:

    Здорово!

  2. 2 On 11.03.2010, blogwork said:

    Поздравляю с рождение ребенка ! Про скрипт подумаю, не совсем еще въехал. .

  3. 3 On 11.03.2010, Павел said:

    Поздравляю с пополнением! А за статью спасибо, обязательно испытаю сий прогресс на деле))

  4. 4 On 11.03.2010, my-cash.net said:

    Я так понял, указываемые IP должны быть привязаны к серверу?

    Если так, почему бы тогда просто не использовать прокси?

  5. 5 On 11.03.2010, GTAlex said:

    зачем прокси юзать если есть свои ?

  6. 6 On 13.03.2010, Stimerex-Es said:

    Спасибо большое в поиске нету простите ) Снова проявление ментального поля!

    mycash net настоящий капитан! )))))

  7. 7 On 14.03.2010, der said:

    Действительно удивили и порадовали

    Никогда не поверил бы,

    www.ucoza.ru

    что даже такое бывает

  8. 8 On 22.03.2010, Виктор said:

    Поздравляю с пополнением!

    Завидую работоспособности — у меня и с полугодовалым сыном времени на блог как-то не выдается.

  9. 9 On 28.12.2010, miki said:

    интересует подобный скрипт

    для получения информации WHOIS

    с подменой IP

    Если есть подобное пришлите на мыло

    mikirada@yandex.ru

    Спасибо

  10. 10 On 11.02.2011, Крот said:

    Интересно из тех кто тут отписывался пробовал хоть кто то запускать скрипт? Fatal error: Call to undefined function curl_init() in .........

  11. 11 On 11.02.2011, GTAlex said:

    у тебя либа curl не подключена в php

  12. 12 On 19.04.2011, Gollandes said:

    Первым способом ответа не показывается (возможно ушел по ложному IP)

    По второму дает ошибку:

    Warning: socket_bind() [function.socket-bind]: unable to bind address [0]: Требуемый адрес для своего контекста неверен. in Z:\home\pr.pr\www\index.php on line 21

    и выдает реальный IP.

    А как можно проверить первый способ без второго подопытного IP?

  13. Always Last said:
    Самое обсуждаемое на блогах:
    между представителями РФ и Катара в ООН
    лиц Владимира Путина
    о химической кастрации педофилов

Оставить комментарий

  • Ссылочки