(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.
Using composer
composer require jaymoulin/guzzlehttp-cloudflare
$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!!