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

Schreibe einen Kommentar