PHP TorControl, a library to control TOR

Tor logo

I have just released TorControl, a PHP library to control a Tor server.

This library implements the Tor Control protocol.

It supports:

  • Connect to a Tor server through network socket, SSL network socket or UNIX socket
  • Null, password and cookie file authentication methods
  • Automatic authentication for null and cookie file methods
  • Multi-line replies

It is unit-tested with PHPUnit and and installable with Composer.

Download it, see examples and read the doc on the GitHub repository of the library.

A Symfony bundle is also available.

6 comments

  1. Hello,

    petite question par rapport à ton script : tu te connectes à un serveur TOR via mot de passe sur le port 9051. Le serveur comme tu l’utilises est localhost.

    Est-ce que cela veut dire que tu as installé TOR sur ton dédié ? ( en passant par ce tuto par exemple : http://www.howtoforge.com/anonymous-ssh-sessions-with-tor )

    Est-ce envisageable d’utilise ton script avec Tor installé côté client (sur ma machine) pour éviter de pourrir mon dédié ?

    Merci

    • La plupart des hébergeurs de dédiés (excepté Amazon) n’autorisent pas Tor sur leurs réseaux.

      Effectivement c’est une meilleure idée de faire tourner l’appli PHP qui utilise Tor sur une machine disposant d’une connexion de type perso et d’envoyer les données récupérée sur l’appli hébergée (par exemple en exposant une API REST).

  2. Je vois.

    J’ai Tor installé sur ma machine. Du coup, comment fais-tu le lien ? Il faut nécessairement un relais ou cela n’a rien à voir ?
    Il y a quelque chose à toucher dans l’onglet “Partage” ?

    Chez une erreur 500 au simple fait de définir les lignes après “$tc = new TorControl\TorControl”. Je pense que ça vient simplement du fait que les paramètres ne sont pas bons.

  3. Oui, le canal de contrôle est activé sur 127.0.0.1:9051
    C’est visible sur la version Windows de Tor.

    En fait, c’est ton code sur https://github.com/dunglas/php-torcontrol qui n’est pas bon, j’ai l’impression.

    Par exemple :
    ‘port’ => 9051 -> manque la virgule à la fin
    ‘password’ => ‘MySecr3tPassw0rd'; -> point virgule en trop ici qui devrait être en fin de ligne suivante

    Après correction, j’ai bien le message “Fatal error: Uncaught exception ‘TorControl\Exception\IOError’ with message ‘Not connected'”

    Je ne m’y connais pas trop en Tor donc je risque de te spammer, je vais arrêter là quitte à continuer sur skype.

    Merci pour ton temps.

Laisser un commentaire