kvasilov48
10/3/2015 - 10:25 AM

PHP Tor relay

PHP Tor relay

<?php
function get($url,$proxy){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
	curl_setopt($ch, CURLOPT_PROXY, "$proxy");
	$ss=curl_exec($ch);
	curl_close($ch);
	return $ss;
}

$prox = 'ip_вашей_машины или localhost:9050';
$a=get('internet.yandex.ru',$prox);
echo $a;

/**
 * Меняем звено tor
 **/
function tor_new_identity($tor_ip='127.0.0.1', $control_port='9051', $auth_code=''){
	$fp = fsockopen($tor_ip, $control_port, $errno, $errstr, 30);
	if(!$fp) return false; // не можем законнектицца на порт управления
 
	fputs($fp, "AUTHENTICATE $auth_code\r\n");
	$response = fread($fp, 1024);
	list($code, $text) = explode(' ', $response, 2);
	if ($code != '250') return false;

	// шлём запрос на смену звена
	fputs($fp, "signal NEWNYM\r\n");
	$response = fread($fp, 1024);
	list($code, $text) = explode(' ', $response, 2);
	if ($code != '250') return false;
	fclose($fp);
	return true;
}

if(tor_new_identity('127.0.0.01', '9051')){
  // здесь код получения странички через tor
}
?>