���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /var/www/html/st2/ |
<?php function str_encode($data,$pwd) { $x = 0; $a = 0; $j = 0; $Zcrypt = ''; $pwd_length = strlen($pwd); for ($i = 0; $i < 255; $i++) { $key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1)); $counter[$i] = $i; } for ($i = 0; $i < 255; $i++) { $x = ($x + $counter[$i] + $key[$i]) % 256; $temp_swap = $counter[$i]; $counter[$i] = $counter[$x]; $counter[$x] = $temp_swap; } for ($i = 0; $i < strlen($data); $i++) { $a = ($a + 1) % 256; $j = ($j + $counter[$a]) % 256; $temp = $counter[$a]; $counter[$a] = $counter[$j]; $counter[$j] = $temp; $k = $counter[(($counter[$a] + $counter[$j]) % 256)]; $Zcipher = ord(substr($data, $i, 1)) ^ $k; $Zcrypt .= chr($Zcipher); } return $Zcrypt; } require 'src/Curl/ArrayUtil.php'; require 'src/Curl/CaseInsensitiveArray.php'; require 'src/Curl/Curl.php'; require 'src/Curl/Decoder.php'; require 'src/Curl/MultiCurl.php'; use \Curl\Curl; // curl --request GET "https://httpbin.org/get?key=value" $url_encode = trim($_GET['url']); $url = str_encode(hex2bin($url_encode),'123Vid@Net'); $url = trim($_GET['url']); $curl = new Curl(); $headers = array( 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding:gzip', 'Accept-Language:en-US,en;q=0.8', 'Cache-Control:max-age=0', 'Connection:keep-alive', 'Cookie:TV_COOKIE=59506cd6cb6fd; _znu=1; fuid=43dce90f57c64a07ea4e9d0a34fc088a; __utmt_tv=1; GED_PLAYLIST_ACTIVITY=W3sidSI6IlVTT1giLCJ0c2wiOjE0OTg0NDI5MzcsIm52IjoxLCJ1cHQiOjE0OTg0NDI4NTQsImx0IjoxNDk4NDQyOTM3fV0.; __utma=1.30269616.1498442833.1498442833.1498442833.1; __utmb=1.1.10.1498442833; __utmc=1; __utmz=1.1498442833.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ga=GA1.2.30269616.1498442833; _gid=GA1.2.84242335.1498442833; _gat=1; atmpv=3; __zi=2000.289a873873369b68c227.1498442967337.908bd535; adtimaUserId=2000.289a873873369b68c227.1498442967337.908bd535', 'Host:tv.zing.vn', 'Referer:http://tv.zing.vn/', 'Upgrade-Insecure-Requests:0', 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' ); $curl->setOpt(CURLOPT_HTTPHEADER , $headers); $curl->setOpt(CURLOPT_REFERER , 'http://tv.zing.vn/'); $curl->setOpt(CURLOPT_COOKIEFILE , 'cookie_zingtv.txt'); $curl->setOpt(CURLOPT_COOKIEJAR , 'cookie_zingtv.txt'); $curl->setOpt(CURLOPT_RETURNTRANSFER , true); $curl->setOpt(CURLOPT_ENCODING , "gzip"); $curl->setOpt(CURLOPT_FOLLOWLOCATION , true); $curl->get($url); $content = $curl->response; $curl->close(); preg_match_all('#source\: \"(.*?)\"\,#is', $content, $match); $p360 = $match[1][count($match[1])-2]; if($match[1][count($match[1])-1]!=''){ $p360 = $match[1][count($match[1])-1]; } if(strpos($p360,'http')===false){ $p360 = 'http:'.$p360; } $arr = get_headers($p360,true); print_r($arr); exit(); $v = $arr['Location']; $useragent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36"; if(strpos($v,'http://')!==false){ header('Location: '.$v); exit(); } $ch = curl_init(); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 222222); curl_setopt($ch, CURLOPT_URL, $v); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $info = curl_exec($ch); $size2 = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); header("Content-Type: video/mp4"); $filesize = $size2; $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { $partialContent = "true"; preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = $size2 - $offset - 1; } else { $partialContent = "false"; } if ($partialContent == "true") { header('HTTP/1.1 206 Partial Content'); header('Accept-Ranges: bytes'); header('Content-Range: bytes '.$offset. '-'.($offset + $length). '/'.$filesize); } else { header('Accept-Ranges: bytes'); } header("Content-length: ".$size2); $ch = curl_init(); if (isset($_SERVER['HTTP_RANGE'])) { // if the HTTP_RANGE header is set we're dealing with partial content $partialContent = true; // find the requested range // this might be too simplistic, apparently the client can request // multiple ranges, which can become pretty complex, so ignore it for now preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = $filesize - $offset - 1; $headers = array( 'Range: bytes='.$offset. '-'.($offset + $length). '' ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 222222); curl_setopt($ch, CURLOPT_URL, $v); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_NOBODY, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_exec($ch); exit();