Skip to content

Kévin Dunglas

Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components.

Menu
  • Talks
  • Resume
  • Sponsor me
  • Contact
Menu

PHP TorControl, a library to control TOR

Posted on February 23, 2013January 12, 2014 by Kévin Dunglas

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.

Related posts:

  1. DunglasTorControlBundle, TorControl Symfony integration
  2. PHP TorControl, une bibliothèque pour contrôler un serveur Tor
  3. Introducing the SocialShare PHP library
  4. Twisted Python Twitter library with OAuth support

6 thoughts on “PHP TorControl, a library to control TOR”

  1. Pingback: DunglasTorControlBundle, TorControl Symfony integration - Kévin Dunglas
  2. Jérôme says:
    September 13, 2013 at 9:21 am

    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

    Reply
    1. dunglas says:
      September 13, 2013 at 9:26 am

      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).

      Reply
  3. Jérôme says:
    September 13, 2013 at 9:50 am

    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.

    Reply
    1. dunglas says:
      September 13, 2013 at 9:56 am

      Active les traces de debug sur ton environnement.
      Sans elles ça va être compliqué de débugguer.

      As-tu activé le canal de contrôle sur ton serveur Tor ?

      Reply
  4. Jérôme says:
    September 13, 2013 at 10:35 am

    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.

    Reply

Leave a ReplyCancel reply

Social

  • Bluesky
  • GitHub
  • LinkedIn
  • Mastodon
  • X
  • YouTube

Links

  • API Platform
  • FrankenPHP
  • Les-Tilleuls.coop
  • Mercure.rocks
  • Vulcain.rocks

Subscribe to this blog

Top Posts & Pages

  • FrankenPHP’s New Features: Thread Autoscaling, Mostly Static Binaries, deb and RPM Packages, Caddy 2.10…
  • FrankenPHP: The Modern Php App Server, written in Go
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Develop Faster With FrankenPHP
  • FrankenPHP 1.3: Massive Performance Improvements, Watcher Mode, Dedicated Prometheus Metrics, and More
  • FrankenPHP Is Now Officially Supported by The PHP Foundation
  • PHP and Symfony Apps As Standalone Binaries
  • How to debug Xdebug... or any other weird bug in PHP
  • Symfony's New Native Docker Support (Symfony World)
  • Webperf: Boost Your PHP Apps With 103 Early Hints

Tags

Apache API API Platform Buzz Caddy Docker Doctrine FrankenPHP Go Google GraphQL HTTP/2 Hydra hypermedia Hébergement Javascript JSON-LD Kubernetes La Coopérative des Tilleuls Les-Tilleuls.coop Lille Linux Mac Mercure Messagerie Instantanée MySQL performance PHP Punk Rock Python React REST Rock'n'Roll Schema.org Security SEO SEO Symfony Symfony Live Sécurité Ubuntu Web 2.0 webperf XHTML XML

Archives

Categories

  • DevOps (85)
    • Ubuntu (68)
  • Go (19)
  • JavaScript (46)
  • Mercure (7)
  • Opinions (91)
  • PHP (172)
    • API Platform (77)
    • FrankenPHP (11)
    • Laravel (1)
    • Symfony (97)
    • Wordpress (6)
  • Python (14)
  • Security (15)
  • SEO (25)
  • Talks (46)
© 2025 Kévin Dunglas | Powered by Minimalist Blog WordPress Theme