【发布时间】:2015-10-13 16:30:41
【问题描述】:
我正在使用我的 TOR 浏览器连接到 .onion 网站并使用 c# 下载数据。我想做的是添加一个允许用户获得新身份的按钮,但到目前为止我没有尝试过任何工作。
我尝试过使用 telnet,向端口 9151 发送 web 请求,运行应该执行此操作的 vbs,但没有任何效果。
我尝试过使用 TorSharp,但是虽然它只对异步有效,但我无法正确使用它。我目前正在使用com.LandonKey.SocksWebProxy。
我该怎么做?
知道需要什么我会添加相关代码,请问。
编辑:
@拉尔夫·维格姆
遗憾的是,我不记得尝试创建新身份的所有方式,正如我所说,我尝试使用 Diagnostic.Process.Start() 运行 VBS,但我不再拥有该脚本。
我也尝试过使用WebRequest,但我什至不确定应该怎么做。
这就是我记忆中的样子:
com.LandonKey.SocksWebProxy.Proxy.ProxyConfig pc = new com.LandonKey.SocksWebProxy.Proxy.ProxyConfig();
pc.SocksAddress = IPAddress.Parse(tb_Location.Text);
pc.SocksPort = 9151;
SocksWebProxy sw = new SocksWebProxy(pc);
HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create("http://127.0.0.1");
wreq.Headers.Add("SIGNAL", "AUTHENTICATE \"\"");
wreq.Headers.Add("SIGNAL", "NEWNYM");
using (var wres = wreq.GetResponse())
{
using (var s = new StreamReader(wres.GetResponseStream()))
{
MessageBox.Show(s.ReadToEnd());
}
}
我也尝试过使用 telnet(使用 PrimS.Telnet),但也没有用。看起来像这样:
CancellationToken ct = new CancellationToken();
PrimS.Telnet.Client c = new PrimS.Telnet.Client("127.0.0.1", 9151, ct);
c.WriteLine("AUTHENTICATE \"\"\n");
c.WriteLine("SIGNAL NEWNYM");
@drew010
正如我所说,我确实使用了TorSharp,但我停止了。在那里创建一个新身份非常容易,但它完全异步运行,我无法修复它以将其与我的其余代码一起使用。
【问题讨论】:
-
您是否通过控制套接字进行了身份验证?请发布您用于连接到控制套接字并创建新身份的代码。
-
@WolfyD 关于您对 TorSharp 使用异步控制客户端的评论,您是否希望控制连接在发送信号之前阻止您的代码?设置基本连接将是相当简单的。只需切换到TcpClient.Connect 而不是 ConnectAsync,然后切换 streamreader/write 以使用 WriteLine 和 ReadLine 而不是异步版本。代码应该几乎相同。
标签: c# webrequest tor socks