.
10 марта 2010

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

posted in SEO, Полезности, Программирование |

Всем привет!

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

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

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

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

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

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

CURLOPT_INTERFACE

";

	$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 "

socket_bind

"; $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

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

Яндекс.Метрика