为什么Tor不能访问本地主机页面

2024-05-15 14:45:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行了Tor和python脚本来获取网页:

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket

print urllib2.urlopen(URL).read()

但是,如果URL是

^{pr2}$

我得到以下错误:

raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
TypeError: __init__() takes exactly 2 arguments (3 given)

有人能给我解释一下到底发生了什么吗?在

谢谢。在


Tags: 脚本url网页typesocketurllib2resptor
2条回答

这就是协议的设计方式。当您发送一个请求时,它会用Socks5信封传送到因特网上的另一台机器上。所以实际的请求是从外部服务器发出的,因此访问127.0.0.1是不可能的。在

您可以在localhost中将torproxy与php一起使用。使用cURL。把你的本地IP放到局域网代理配置“没有代理:”。示例192.168.1.10。然后将php称为“http://192.168.1.10/your_script.php

$proxy = '127.0.0.1:9150';
$ur = "http://anydomain.com";
$ch = curl_init();

curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    curl_setopt($ch, CURLOPT_URL, $ur);

    $curl_scraped_page = curl_exec($ch);
    $error = curl_error($ch);

相关问题 更多 >