Wie die Benutzung von Tor control protocol in C#?
Ich versuche, um Befehle zu senden, um das Tor für den control-port programmgesteuert zu machen, aktualisieren Sie die Kette. Ich habe nicht in der Lage zu finden alle Beispiele in C#, und meine Lösung nicht funktioniert. Zeitüberschreitung für die Anfrage. Ich habe den Dienst auszuführen, und ich kann sehen, es hören auf den control-port.
public string Refresh()
{
TcpClient client = new TcpClient("localhost", 9051);
string response = string.Empty;
string authenticate = MakeTcpRequest("AUTHENTICATE\r\n", client);
if (authenticate.Equals("250"))
{
response = MakeTcpRequest("SIGNAL NEWNYM\r\n", client);
}
client.Close();
return response;
}
public string MakeTcpRequest(string message, TcpClient client)
{
client.ReceiveTimeout = 20000;
client.SendTimeout = 20000;
string proxyResponse = string.Empty;
try
{
//Send message
StreamWriter streamWriter = new StreamWriter(client.GetStream());
streamWriter.Write(message);
streamWriter.Flush();
//Read response
StreamReader streamReader = new StreamReader(client.GetStream());
proxyResponse = streamReader.ReadToEnd();
}
catch (Exception ex)
{
//Ignore
}
return proxyResponse;
}
Kann jeder spot, was ich falsch mache?
Edit:
Folgenden Hans Vorschlag, das hat er jetzt gelöscht aus irgendeinem Grund, ich habe versucht zu senden "AUTHENTIFIZIEREN\n" anstelle von nur "AUTHENTIFIZIEREN". Jetzt bin ich immer wieder ein Fehler aus dem Tor: "551 Ungültige Zeichenfolge in Anführungszeichen. Sie müssen das Kennwort in doppelte Anführungszeichen." Zumindest gibt es da einige Fortschritte.
Ich habe dann versucht zu senden "AUTHENTIFIZIERUNG \"\"\n", wie es will, aber es mal auszuprobieren, während Sie auf eine Antwort wartet.
Edit:
Der Befehl funktioniert in der Windows-Telnet-client. Ich weiß nicht einmal, fügen Sie die Anführungszeichen. Kann nicht herausfinden, was falsch ist. Vielleicht sind die doppelten Anführungszeichen sind nicht richtig kodiert, wenn Sie geschickt?
InformationsquelleAutor der Frage Edgar | 2010-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort MvcCmsJon
Wenn ich senden Sie die AUTHENTICATE-Befehl, der StreamReader liest die Antwort auf das Ende, aber es gibt kein Ende, weil auf den Erfolg der stream ist offen gehalten. Also änderte ich es nur für das Lesen der ersten Zeile der Antwort in diesem Fall.
InformationsquelleAutor der Antwort Edgar
Hinzugefügt ein weiteres Beispiel, ich bin mit mir unten. Auch die zusätzlichen Schritte für diejenigen, die wollen, um das setup Tor annehmen kann Befehle über den control-Anschluss.
Schritte zum konfigurieren von Tor:
tor.exe --hash-password “your_password_without_hyphens” | more
hashedControlPassword 16:3B7DA467B1C0D550602211995AE8D9352BF942AB04110B2552324B2507
. Wenn Sie akzeptieren Ihr Passwort "Passwort" können Sie kopieren Sie die Zeichenfolge oben.Test geändert Tor per Telnet:
tor.exe -f .\torrc-defaults
telnet localhost 9151
autenticate “your_password_with_hyphens”
" Wenn alles gut geht, Sie sollten sehen, "250 OK".SIGNAL NEWNYM
" und Sie erhalten eine neue route, ergo neue IP. Wenn alles gut geht, Sie sollten sehen, "250 OK".setevents circ
" (circuit-Veranstaltungen) , Ausgabe in der Konsole aktivierengetinfo circuit-status
" zu sehen StromkreiseInformationsquelleAutor der Antwort Ogglas
Wahrscheinlich haben Sie mit Vidalia, die Sie erzeugt ein hashed password for control port access. Sie müssen die Nutzung der Tor-Konsole app und konfigurieren Sie eine torrc Datei.
InformationsquelleAutor der Antwort Dantas