PHPackages                             olect/torcurl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. olect/torcurl

ActiveLibrary[HTTP &amp; Networking](/categories/http)

olect/torcurl
=============

Curl wrapper utilizing tor proxy

v1.0.3(4y ago)06BSD-3-ClausePHPPHP &gt;=7.1

Since Jan 10Pushed 4y ago1 watchersCompare

[ Source](https://github.com/olect/torcurl)[ Packagist](https://packagist.org/packages/olect/torcurl)[ Docs](https://github.com/olect/TorCurl)[ RSS](/packages/olect-torcurl/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (1)Versions (6)Used By (0)

Name:
-----

[](#name)

**Fucx\\TorCurl** - Not a very complex thing, but very helpful curl wrapper utilizing Tor Proxy connection to be anonymous and for dynamically changing IP address.

Version:
--------

[](#version)

**1.0**

Author:
-------

[](#author)

Ole Chr. Thorsen

Requirements:
-------------

[](#requirements)

- PHP 7.1 or greater

Description:
------------

[](#description)

**Fucx\\TorCurl** provides a curl wrapper that works together with Tor. The main functionality is to start a Tor process and to perform curl requests (GET|POST). This codepack is not perfect, but should be very helpful for those who wanna bypass ip-blocks when performing to many requests against a server. Please use with good intent. I take no responsibiliy for any misuse or damage caused by using this package and should be used with valid concent and at your own risk.

Setup
-----

[](#setup)

Make sure you have Tor installed with CLI support. See [install instructions here](https://community.torproject.org/onion-services/setup/install/) for different OS.

Troubleshooting
---------------

[](#troubleshooting)

You can always add `verbose` mode to the ProxyConfig for full verbose reporting.

```
$config = new ProxyConfig();
$config->verbose();

```

- ProxyNotExistException: Means that Tor didn't start and it can't connect to the proxy or the proxy configuration was wrong. Check your /torrc file for proper IP and Port
- ProxyConnectionException: Problem getting identity from Tor connection. You have Tor installed? Test terminal command `tor`.
- TorCurlExecutionException: Your curl request returned some errors. Error should be thrown.
- NotImplementedException: I just didn't care to implement it.
- SingeltonException: Basically what it says. You have to initialize the curl wrapper through the static `Curl::init` method and not `new Curl`
- ProxyStartException: Problem starting proxy for some reason. Probably because of ProxyConfig parameter mismatch. Run verbose.

If you get SSL issues: `$curl->ignoreSSL()`.

Also, if Tor suddenly stop working properly, run `killall tor` and try again.

Examples:
---------

[](#examples)

The source package comes with some examples of interacting with the Tor Curl Wrapper. See the `examples/` directory in the source package.

TODO: (I won't actually ever do this, so feel free to fork and do)
------------------------------------------------------------------

[](#todo-i-wont-actually-ever-do-this-so-feel-free-to-fork-and-do)

- Refactor the entire shit to look more tech savvy
- Implement all request methods that I didn't give a fucx about

Copyright
---------

[](#copyright)

Copyright (c) 2022 Ole Chr. Thorsen All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

1581d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/046acf09be939072bcf1499fe04d0b6d55e2521d1be858b700d18d29d67cb4b2?d=identicon)[olect](/maintainers/olect)

---

Top Contributors

[![olect](https://avatars.githubusercontent.com/u/1047183?v=4)](https://github.com/olect "olect (5 commits)")

---

Tags

curltoranonynimityoniontor client

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/olect-torcurl/health.svg)

```
[![Health](https://phpackages.com/badges/olect-torcurl/health.svg)](https://phpackages.com/packages/olect-torcurl)
```

###  Alternatives

[dapphp/torutils

Classes for interacting with Tor over the control protocol, querying directory authorities and servers, DNS exit lists, a curl wrapper that makes it easy to use Tor's SOCKS proxy, and more.

7283.9k1](/packages/dapphp-torutils)[rmccue/requests

A HTTP library written in PHP, for human beings.

3.6k34.5M257](/packages/rmccue-requests)[kriswallsmith/buzz

Lightweight HTTP client

2.0k31.3M443](/packages/kriswallsmith-buzz)[mashape/unirest-php

Unirest PHP

1.3k9.7M161](/packages/mashape-unirest-php)[php-http/curl-client

PSR-18 and HTTPlug Async client with cURL

48247.0M384](/packages/php-http-curl-client)[smi2/phpclickhouse

PHP ClickHouse Client

83510.1M72](/packages/smi2-phpclickhouse)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
