Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(0);
- ignore_user_abort(false);
- ini_set('display_errors', 'off');
- $start_time = microtime(true);
- // входные данные:
- $time = time();
- $uri = trim(strip_tags($_SERVER['REQUEST_URI']));
- $host = isset($_SERVER['HTTP_HOST']) ? preg_replace("/[^0-9A-Za-z-.:]/","",mb_strtolower(strip_tags(trim($_SERVER['HTTP_HOST'])), 'UTF-8')) : 'localhost';
- $referer = isset($_SERVER['HTTP_REFERER']) ? strip_tags(trim($_SERVER['HTTP_REFERER'])) : '';
- $useragent = isset($_SERVER['HTTP_USER_AGENT']) ? trim(strip_tags($_SERVER['HTTP_USER_AGENT'])) : '';
- $cookie = isset($_SERVER['HTTP_COOKIE']) ? trim(strip_tags($_SERVER['HTTP_COOKIE'])) : '';
- $http_accept = isset($_SERVER['HTTP_ACCEPT']) ? trim(strip_tags($_SERVER['HTTP_ACCEPT'])) : '';
- $http_accept_language = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? trim(strip_tags($_SERVER['HTTP_ACCEPT_LANGUAGE'])) : '';
- // это будем слать:
- $headers = [
- 'Accept: '.$http_accept,
- 'Accept-Encoding: gzip, deflate',
- 'Accept-Language: '.$http_accept_language,
- 'Cache-Control: no-cache',
- 'Host: '.$host,
- 'Referer: '.$referer,
- 'User-Agent: '.$useragent
- ];
- // это тоже слать, если вдруг клаудфлар:
- if (isset($_SERVER['HTTP_CDN_LOOP'])) {$headers[] = 'CDN-Loop: '.trim(strip_tags($_SERVER['HTTP_CDN_LOOP']));}
- if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {$headers[] = 'CF-Connecting-IP: '.trim(strip_tags($_SERVER['HTTP_CF_CONNECTING_IP']));} else {$headers[] = 'CF-Connecting-IP: '.trim(strip_tags($_SERVER['REMOTE_ADDR']));}
- if (isset($_SERVER['HTTP_CF_VISITOR'])) {$headers[] = 'Cf-Visitor: '.trim(strip_tags($_SERVER['HTTP_CF_VISITOR']));}
- if (isset($_SERVER['HTTP_CF_RAY'])) {$headers[] = 'Cf-Ray: '.trim(strip_tags($_SERVER['HTTP_CF_RAY']));}
- if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$headers[] = 'X-Forwarded-For: '.trim(strip_tags($_SERVER['HTTP_X_FORWARDED_FOR']));}
- if (isset($_SERVER['HTTP_CF_IPCOUNTRY'])) {$headers[] = 'Cf-Ipcountry: '.trim(strip_tags($_SERVER['HTTP_CF_IPCOUNTRY']));}
- if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {$headers[] = 'X-Forwarded-Proto: '.trim(strip_tags($_SERVER['HTTP_X_FORWARDED_PROTO']));}
- //print_r($headers);
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, 'http://123.123.123.123'.$uri);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLINFO_HEADER_OUT, true);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- if ($_SERVER['REQUEST_METHOD'] == 'POST') {
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
- curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
- }
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_TIMEOUT, 6);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_MAXREDIRS, 2);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ch, CURLOPT_COOKIE, $cookie);
- curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
- curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
- $outch = curl_exec($ch);
- $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $content_type = strip_tags(curl_getinfo($ch, CURLINFO_CONTENT_TYPE));
- curl_close($ch);
- if($http_code == 404) {
- header('HTTP/1.1 404 Not Found');
- header('Status: 404 Not Found');
- } else {
- header('Content-Type: '.$content_type);
- }
- echo $outch;
- $exec_time = microtime(true) - $start_time;
- $exec_time = round($exec_time, 5);
- //echo '<!-- Time: '.$exec_time.' Sec. -->';
Add Comment
Please, Sign In to add comment