我正在使用我的TOR浏览器连接到.onion
网站并使用c#下载数据。我想做的是添加一个允许用户获得新身份的按钮,但到目前为止我没有尝试过。
我尝试过使用telnet,向端口9151发送webrequest,运行本应该执行此操作的vbs,但没有任何效果。
我已经尝试过使用TorSharp,但是虽然有效但只能使用Async,我无法正常使用它。我目前正在使用com.LandonKey.SocksWebProxy
。
我怎么能这样做?
当我知道需要什么时,我会添加相关代码,请问。
编辑:
@Ralph Wiggum
可悲的是,我记不起我尝试创建新身份的每一种方式,正如我所说,我尝试使用VBS
运行Diagnostic.Process.Start()
,但我没有那个脚本更多。
我也尝试使用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
但我停了下来。在那里创建一个新的身份非常容易,但它完全运行Async,我无法修复它以将其与我的其余代码一起使用。
答案 0 :(得分:3)
要使用代码获取新身份,您需要打开与控制端口的连接(通常为9051并默认禁用[编辑您的torrc以添加<catalog>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
</catalog>
])并发出NEWNYM信号以建立新电路。
为此,您可以使用TorSharp中的TorControlClient
类。
ControlPort 9051
您也可以使用此batch file来申请新身份,但C#可能更适合您的应用。引用该代码以查看控件连接上的序列以获取新标识。
请参阅ControlPort和HashedControlPassword配置选项。
希望有所帮助。