Skip to content

Kévin Dunglas

Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, 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 Reply to Jérôme Cancel reply

Follow me on Twitter

My Tweets

Subscribe to this blog

Recent Posts

  • New in Caddy 2.5: Redact Sensitive Data from Your Logs
  • Building Decentralized Web Apps with Solid and PHP
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Preventing CORS Preflight Requests Using Content Negotiation
  • Symfony’s New Native Docker Support (Symfony World)

Top Posts & Pages

  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Generate a Symfony password hash from the command line
  • Using the "103 Early Hints" Status Code in Go Applications
  • Symfony and API Platform get "push" and real-time capabilities (Mercure protocol)
  • API Platform 2.6: PHP 8 support, Next.js and Nuxt.js app generator, Caddy server, ActivityPub and much more!
  • Symfony's New Native Docker Support (Symfony World)
  • Preventing CORS Preflight Requests Using Content Negotiation
  • Using Next.js and Material UI Together
  • Building Decentralized Web Apps with Solid and PHP
  • Mercure - Real-Time for PHP Made Easy (Forum PHP)

Persistence in PHP with the Doctrine ORM

Persistence in PHP with the Doctrine ORM

Tags

Android Apache API API Platform Buzz Caddy Docker Doctrine Go Google 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 Open Source PHP Punk Rock Python React REST Rock'n'Roll RSS Schema.org Security SEO SEO Symfony Symfony Live Sécurité Ubuntu Web 2.0 Wordpress XHTML XML

Archives

Categories

  • DevOps (24)
  • Mercure (3)
  • Opinions (91)
  • Programming (178)
    • Android (5)
    • Go (11)
    • JavaScript (43)
    • PHP (136)
      • API Platform (60)
      • Symfony (89)
    • Python (14)
      • Django (5)
  • Security (15)
  • SEO (24)
  • Talks (37)
  • Ubuntu (68)
  • Wordpress (6)

Blogoliste

  • API Platform
  • Les-Tilleuls.coop
  • Mercure.rocks
  • Vulcain.rocks
© 2022 Kévin Dunglas | Powered by Minimalist Blog WordPress Theme