Анонимизация (сокрытие IP) запросов PHP через ТОР

Запишу себе, пока не потерял. Очень полезно на будущее использовать такую штуку. Полная анонимизация через Тор.

В принципе, очевидно, но отпишу - украл код вот отсюда.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function torHttpGet($url, $ref) {
$torIPPort="127.0.0.1:8118"; //tor's ip and port
$agentBrowser = array('Firefox','Safari','Opera','Flock','Internet Explorer','Ephifany','AOL Explorer','Seamonkey','Konqueror','GoogleBot');
$agentOS = array('Windows 2000','Windows NT','Windows XP','Windows Vista','Redhat Linux','Ubuntu','Fedora','FreeBSD','OpenBSD','OS 10.5');
$useragent=$agentBrowser[rand(0,7)].’/’.rand(1,8).’.’.rand(0,9).’ (’ .$agentOS[rand(0,11)].’ ‘.rand(1,7).’.’.rand(0,9).’; en-US;)’;
$curl_obj = curl_init();
curl_setopt($curl_obj, CURLOPT_URL, $url);
curl_setopt($curl_obj, CURLOPT_REFERER, $ref);
curl_setopt($curl_obj, CURLOPT_HEADER, TRUE);
curl_setopt($curl_obj, CURLOPT_HTTPGET, TRUE);
curl_setopt($curl_obj, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl_obj, CURLOPT_FOLLOWLOCATION, TRUE); //followlocation cannot be used when safe_mode/open_basedir are on
curl_setopt($curl_obj, CURLOPT_MAXREDIRS, 3);
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_obj, CURLOPT_TIMEOUT, 10);
curl_setopt($curl_obj, CURLOPT_USERAGENT, $useragent);
curl_setopt($curl_obj, CURLOPT_PROXY, $torIPPort);
curl_setopt($curl_obj, CURLOPT_CURLOPT_ERRORBUFFER, TRUE); //human readable errors
$page = curl_exec($curl_obj);
$err = curl_error($curl_obj);
curl_close($curl_obj);
if(strlen($err) > 0) {
return -1;
} else {
return $page;
}
}