jaymoulin / guzzlehttp-cloudflare
Bypass Cloudflare protection using GuzzleHTTP
Requires
- php: ^7.2
- ext-bcmath: *
- ext-curl: *
- guzzlehttp/guzzle: ^6.3
- jaymoulin/cloudflare-bypass: ^3.3.1
Requires (Dev)
- phploc/phploc: ^5.0
- phpmd/phpmd: ^2.4
- phpunit/phpunit: ^8.0
- sebastian/phpcpd: ^4.0
- squizlabs/php_codesniffer: ^3.2
README
Guzzle Cloudflare Bypass
(This product is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added.)
IMPORTANT NOTE: as KyranRana's dependency is actually not maintained anymore (https://github.com/KyranRana/cloudflare-bypass/commit/00d34f0050b817b858bbf5fd349b9911932f353f), this package won't be as-well. Thank you for your understanding. Please have a look at my other works (https://github.com/jaymoulin | https://twitch.tv/cursedware | https://patreon.com/jaymoulin | https://discord.gg/ujjrPCu | https://jaymoulin.me)
Bypass Cloudflare DDoS protection - Please use it carefully
This package is based on KyranRana's cloudflare-bypass.
Installation
Using composer
composer require jaymoulin/guzzlehttp-cloudflare
Usage
$sUrl = 'https://thebot.net/'; $oClient = new \GuzzleHttp\Client([ 'cookies' => new \GuzzleHttp\Cookie\FileCookieJar(tempnam('/tmp', __CLASS__)), 'headers' => ['Referer' => $sUrl], ]); // 1. Create Guzzle instance $aOptions = [ 'cache' => new \CloudflareBypass\Storage($sPathToYourCacheFolder), ]; // Example for cache, this is completely optional, with $sPathToYourCacheFolder a string to your cache folder /** @var \GuzzleHttp\HandlerStack $oHandler */ $oHandler = $oClient->getConfig('handler'); $oHandler->push(\GuzzleCloudflare\Middleware::create($aOptions)); //2. ??? echo (string)$oClient->request('GET', $sUrl)->getBody(); //3. Profit!!