使用 c# 的 TOR 新身份
Posted
技术标签:
【中文标题】使用 c# 的 TOR 新身份【英文标题】:New identity for TOR using c# 【发布时间】: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 而不是异步版本。代码应该几乎相同。 【参考方案1】:要使用直通代码获取新身份,您需要打开与控制端口的连接(通常为 9051,默认禁用 [编辑您的 torrc 以添加ControlPort 9051
])并发出 NEWNYM 信号以建立新电路.
为此,您可以使用 TorSharp 中的 TorControlClient
类。
using Knapcode.TorSharp.Tools.Tor;
TorControlClient tc = new TorControlClient();
tc.ConnectAsync("localhost", 9051);
tc.AuthenticateAsync(null); // you should password protect your control connection
tc.SendCommandAsync("SIGNAL NEWNYM");
您也可以使用此batch file 请求新身份,但 C# 可能更适合您的应用程序。参考该代码以查看控制连接上的序列以获取新身份。
请参阅ControlPort 和HashedControlPassword 配置选项。
希望对您有所帮助。
【讨论】:
自从编辑我的帖子后,我尝试了您链接到的批处理文件解决方案,并且确实有效,谢谢。它仍然是我的代码之外的东西,所以它并不是我真正想要的,但在我找到解决方案之前它会起作用。谢谢!以上是关于使用 c# 的 TOR 新身份的主要内容,如果未能解决你的问题,请参考以下文章