2017 © Pedro Peláez
 

library guzzle-tor

This Guzzle middleware allows to use Tor client as a proxy

image

megahertz/guzzle-tor

This Guzzle middleware allows to use Tor client as a proxy

  • Tuesday, January 2, 2018
  • by megahertz
  • Repository
  • 4 Watchers
  • 30 Stars
  • 8,002 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 5 Forks
  • 1 Open issues
  • 3 Versions
  • 17 % Grown

The README.md

GuzzleTor

Build Status, (*1)

This Guzzle middleware allows to use Tor client as a proxy, (*2)

function get_tor_ip()
{
    $stack = new HandlerStack();
    $stack->setHandler(new CurlHandler());
    $stack->push(Middleware::tor());
    $client = new Client(['handler' => $stack]);

    $response = $client->get('https://check.torproject.org/');

    if (preg_match('/<strong>([\d.]+)<\/strong>/', $response->getBody(), $matches)) {
        return $matches[1];
    } else {
        return null;
    }
}

Get started

  1. Install composer, (*3)

    Follow the instruction at https://getcomposer.org/download/, (*4)

  2. Install guzzle-tor, (*5)

    php composer.phar require megahertz/guzzle-tor
    
  3. (optional) Copy an example and run, (*6)

    cp vendor/megahertz/guzzle-tor/example.php example.php
    php example.php
    

Symfony 3/4 config DI

services:

    GuzzleHttp\HandlerStack: ~

    app.client.tor:
      class: GuzzleTor\Middleware
      factory: ['GuzzleTor\Middleware', tor]

    app.client.handler_stack:
      factory: GuzzleHttp\HandlerStack:create
      class: GuzzleHttp\HandlerStack
      calls:
      - [ push, ['@app.client.tor'] ]

    app.client:
      class: GuzzleHttp\Client
      arguments:
      - {handler: '@app.client.handler_stack'}

    #Aliases
    GuzzleHttp\Client: '@app.client'

Options

General

Middleware::tor($proxy, $torControl)
  • $proxy is tor socks5 port, by default '127.0.0.1:9050'
  • $torControl is Tor control port, by default '127.0.0.1:9051'. Set if you want to change ip (clean circuits)

Request options

$client->get('https://check.torproject.org/', [
    'tor_new_identity'           => true,
    'tor_new_identity_sleep'     => 15,
    'tor_new_identity_timeout'   => 3,
    'tor_new_identity_exception' => true, 
    'tor_control_password'       => 'password' 
]);
Name Description
tor_new_identity Change an identity/IP (clean circuits) before request. If it's set, we send NEWNYM signal to Tor client. Please be aware, that this method does not guarantee that an identity will be changed soon
tor_new_identity_sleep Pause (seconds) between an ip change identity and a request sending
tor_new_identity_timeout Timeout for a Tor control connection
tor_control_password Tor control password
tor_new_identity_exception If true throw TorNewIdentityException if an error was occurred while trying to change an identity

The Versions

02/01 2018

dev-master

9999999-dev http://github.com/megahertz/guzzle-tor

This Guzzle middleware allows to use Tor client as a proxy

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexey Prokhorov

guzzle tor onion

26/03 2016

v1.0.4

1.0.4.0 http://github.com/megahertz/guzzle-tor

This Guzzle middleware allows to use Tor client as a proxy

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexey Prokhorov

guzzle tor onion

28/11 2015

v1.0.3

1.0.3.0 http://github.com/megahertz/guzzle-tor

This Guzzle middleware allows to use Tor client as a proxy

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexey Prokhorov

guzzle tor onion