我正在尝试使用以下PHP代码连接到Tor隐藏服务:
$url = 'http://jhiwjjlqpyawmpjx.onion/'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);
print_r($output);
print_r($curl_error);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到以下错误:
无法解析主机名
但是,当我从Ubuntu中的命令行运行以下命令时:
curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion
Run Code Online (Sandbox Code Playgroud)
我得到了预期的回复
PHP cURL文档说明了这一点:
--socks5-hostname
Use the specified SOCKS5 proxy (and let the proxy resolve the host name).
Run Code Online (Sandbox Code Playgroud)
我相信它从命令行工作的原因是因为Tor(代理)正在解析它识别的.onion主机名.在运行上面的PHP代码时,我的猜测是cURL或PHP正在尝试解析.onion主机名并且无法识别它.我已经搜索了一种告诉cURL/PHP让代理解析主机名的方法,但我找不到办法.
有一个非常类似的Stack Overflow问题,使用socks5代理的cURL请求在使用PHP时失败,但它通过命令行工作.
我想使用Tor对网页发出多个GET请求.我想为每个请求使用不同的ipaddress.
import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9150)
socket.socket = socks.socksocket
import requests
print (requests.get('http://icanhazip.com')).content
Run Code Online (Sandbox Code Playgroud)
使用这个,我提出了一个请求.如何更改ipaddress以制作另一个?
我正在尝试使用Python编写的爬虫来抓取网站.我想将Tor与Python集成,这意味着我想使用Tor匿名抓取该站点.
我试过这样做.它似乎不起作用.我检查了我的IP,它仍然与我使用tor之前的IP相同.我通过python检查了它.
import urllib2
proxy_handler = urllib2.ProxyHandler({"tcp":"http://127.0.0.1:9050"})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
Run Code Online (Sandbox Code Playgroud) 我在计算机上运行Tor,我需要每隔五分钟更改一次Tor退出节点.例如,如果我通过某个出口节点开始使用Tor,那么在5分钟内我希望Tor更改为具有不同IP地址的退出节点.我怎样才能做到这一点?
据我所知,Tor正在侦听localhost上的端口8051.
我可以将哪些命令发送到此端口以使Tor构建新链,以便我可以获得另一个IP地址?
我想匿名贡献给github上的项目.不要造成恶作剧,更多的是匿名捐款的精神.
在线匿名的首选工具似乎是TOR,它几乎适用于您在浏览器中可以执行的任何操作.但是,要在github上做出贡献,似乎有必要使用命令行界面或Mac应用程序.
如何通过Tor在此设置中引导我的git操作?我如何验证这实际上是发生了什么?
编辑:请注意假名(带有假电子邮件地址)和匿名(带有无法与身份相关联的IP地址)之间的区别.对github的伪名访问是微不足道的; 但是,我正在寻找匿名访问.
是否可以阻止Tor用户?(https://www.torproject.org/)
由于我运行的网站的性质,我应该尽我所能阻止多个帐户并阻止某些位置.Tor比代理人更糟糕 - 一场噩梦......
我正在尝试使用Tor-Server作为代理HttpWebRequest
,我的代码如下所示:
HttpWebRequest request;
HttpWebResponse response;
request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
request.Proxy = new WebProxy("127.0.0.1:9051");
response = (HttpWebResponse)request.GetResponse();
response.Close();
Run Code Online (Sandbox Code Playgroud)
它与"正常"代理完美配合,但使用Tor我在调用时遇到异常
GetResponse() with Status = ServerProtocolViolation. The message is (in German...):Message = "Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseStatusLine"
我是Tor的新手,我觉得应该考虑多个Tors.我在这里提到的多个实例不仅是多个实例,而且还为每个实例使用不同的代理端口,就像这里所做的那样 http://www.howtoforge.com/ultimate-security-proxy-with-tor)
我正在努力开始使用4个Tors.但是,本教程仅适用于Arch Linux,而我使用的是无头EC2 ubuntu 64位.通过Arch和Ubuntu之间的差异真的很痛苦.在这里,我想知道是否有人可以提供一些帮助,以明确地实现我的想法.
四个Tors同时运行,每个都有一个单独的端口,privoxy或polipo或一旦它工作正常.喜欢:8118 < - Privoxy < - TOR < - 9050 8129 < - Privoxy < - TOR < - 9150 8230 < - Privoxy < - TOR < - 9250 8321 < - Privoxy < - TOR < - 9350
这样,如果我尝试返回127.0.0.1:8118,8129,8230和8321的ip,它们应该返回四个不同的ips,这表示有四个不同的Tors同时运行.然后,几分钟后,再次检查,他们四个应该再次有一个新的ips.
我知道我的简单"梦想"可以在很多方面实现,但是......我不仅是Tor的新手,而且也是bash和python的新手...这就是为什么我来到这里看看你们中的一些人是否可以点亮我起来
这些链接可能很有用:
http://blog.databigbang.com/distributed-scraping-with-multiple-tor-circuits/ https://www.torservers.net/wiki/setup/server#multiple_tor_processes Best,
顺便说一句,如果我跑,
$ ps -A | grep 'tor'
我有几个实例,但有"?" 在tty栏下,这意味着什么,因为我知道tty意味着终端?
我打算通过Tor在NodeJS中做一系列的HTTP请求.
Tor使用SOCKS5,所以我出去搜索了一种在NodeJS中代理HTTP请求的方法.
我打算使用默认的http.request()函数来完成工作.
但是,我似乎无法找到使用代理的方法.
有人建议我可以这样做:
var http = require("http");
var options = {
host: "localhost",
port: 9050,
path: "http://check.torproject.org",
method: 'GET',
headers: {
Host: "http://check.torproject.org",
}
};
var req = http.request(options, function(res) {
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
Run Code Online (Sandbox Code Playgroud)
但它没有用.
那么,有什么建议吗?