remove that thing
This commit is contained in:
		@@ -1,144 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
// https://www.bing.com/search?q=url%3Ahttps%3A%2F%2Flolcat.ca
 | 
			
		||||
// https://cc.bingj.com/cache.aspx?q=url%3ahttps%3a%2f%2flolcat.ca&d=4769685974291356&mkt=en-CA&setlang=en-US&w=tEsWuE7HW3Z5AIPQMVkDH4WaotS4LrK-
 | 
			
		||||
// <div class="b_attribution" u="0N|5119|4769685974291356|tEsWuE7HW3Z5AIPQMVkDH4WaotS4LrK-" tabindex="0">
 | 
			
		||||
 | 
			
		||||
new bingcache();
 | 
			
		||||
 | 
			
		||||
class bingcache{
 | 
			
		||||
	
 | 
			
		||||
	public function __construct(){
 | 
			
		||||
		
 | 
			
		||||
		if(
 | 
			
		||||
			!isset($_GET["s"]) ||
 | 
			
		||||
			$this->validate_url($_GET["s"]) === false
 | 
			
		||||
		){
 | 
			
		||||
			
 | 
			
		||||
			var_dump($this->validate_url($_GET["s"]));
 | 
			
		||||
			$this->do404("Please provide a valid URL.");
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		$url = $_GET["s"];
 | 
			
		||||
		
 | 
			
		||||
		$curlproc = curl_init();
 | 
			
		||||
		
 | 
			
		||||
		curl_setopt(
 | 
			
		||||
			$curlproc,
 | 
			
		||||
			CURLOPT_URL,
 | 
			
		||||
			"https://www.bing.com/search?q=url%3A" .
 | 
			
		||||
			urlencode($url)
 | 
			
		||||
		);
 | 
			
		||||
		
 | 
			
		||||
		curl_setopt($curlproc, CURLOPT_ENCODING, ""); // default encoding
 | 
			
		||||
		curl_setopt(
 | 
			
		||||
			$curlproc,
 | 
			
		||||
			CURLOPT_HTTPHEADER,
 | 
			
		||||
			["User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0",
 | 
			
		||||
			"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
 | 
			
		||||
			"Accept-Language: en-US,en;q=0.5",
 | 
			
		||||
			"Accept-Encoding: gzip",
 | 
			
		||||
			"DNT: 1",
 | 
			
		||||
			"Connection: keep-alive",
 | 
			
		||||
			"Upgrade-Insecure-Requests: 1",
 | 
			
		||||
			"Sec-Fetch-Dest: document",
 | 
			
		||||
			"Sec-Fetch-Mode: navigate",
 | 
			
		||||
			"Sec-Fetch-Site: none",
 | 
			
		||||
			"Sec-Fetch-User: ?1"]
 | 
			
		||||
		);
 | 
			
		||||
		
 | 
			
		||||
		curl_setopt($curlproc, CURLOPT_RETURNTRANSFER, true);
 | 
			
		||||
		curl_setopt($curlproc, CURLOPT_SSL_VERIFYHOST, 2);
 | 
			
		||||
		curl_setopt($curlproc, CURLOPT_SSL_VERIFYPEER, true);
 | 
			
		||||
		curl_setopt($curlproc, CURLOPT_CONNECTTIMEOUT, 5);
 | 
			
		||||
		
 | 
			
		||||
		$data = curl_exec($curlproc);
 | 
			
		||||
		
 | 
			
		||||
		if(curl_errno($curlproc)){
 | 
			
		||||
			
 | 
			
		||||
			$this->do404("Failed to connect to bing servers. Please try again later.");
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		curl_close($curlproc);
 | 
			
		||||
		
 | 
			
		||||
		preg_match(
 | 
			
		||||
			'/<div class="b_attribution" u="(.*)" tabindex="0">/',
 | 
			
		||||
			$data,
 | 
			
		||||
			$keys
 | 
			
		||||
		);
 | 
			
		||||
		
 | 
			
		||||
		print_r($keys);
 | 
			
		||||
		
 | 
			
		||||
		if(count($keys) === 0){
 | 
			
		||||
			
 | 
			
		||||
			$this->do404("Bing has not archived this URL.");
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		$keys = explode("|", $keys[1]);
 | 
			
		||||
		$count = count($keys);
 | 
			
		||||
		
 | 
			
		||||
		//header("Location: https://cc.bingj.com/cache.aspx?d=" . $keys[$count - 2] . "&w=" . $keys[$count - 1]);
 | 
			
		||||
		echo("Location: https://cc.bingj.com/cache.aspx?d=" . $keys[$count - 2] . "&w=" . $keys[$count - 1]);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public function do404($text){
 | 
			
		||||
				
 | 
			
		||||
		include "lib/frontend.php";
 | 
			
		||||
		$frontend = new frontend();
 | 
			
		||||
		
 | 
			
		||||
		echo
 | 
			
		||||
			$frontend->load(
 | 
			
		||||
				"error.html",
 | 
			
		||||
				[
 | 
			
		||||
					"title" => "Shit",
 | 
			
		||||
					"text" => $text
 | 
			
		||||
				]
 | 
			
		||||
			);
 | 
			
		||||
		
 | 
			
		||||
		die();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public function validate_url($url){
 | 
			
		||||
		
 | 
			
		||||
		$url_parts = parse_url($url);
 | 
			
		||||
		
 | 
			
		||||
		// check if required parts are there
 | 
			
		||||
		if(
 | 
			
		||||
			!isset($url_parts["scheme"]) ||
 | 
			
		||||
			!(
 | 
			
		||||
				$url_parts["scheme"] == "http" ||
 | 
			
		||||
				$url_parts["scheme"] == "https"
 | 
			
		||||
			) ||
 | 
			
		||||
			!isset($url_parts["host"])
 | 
			
		||||
		){
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if(
 | 
			
		||||
			// if its not an RFC-valid URL
 | 
			
		||||
			!filter_var($url, FILTER_VALIDATE_URL)
 | 
			
		||||
		){
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		$ip = 
 | 
			
		||||
			str_replace(
 | 
			
		||||
				["[", "]"], // handle ipv6
 | 
			
		||||
				"",
 | 
			
		||||
				$url_parts["host"]
 | 
			
		||||
			);
 | 
			
		||||
		
 | 
			
		||||
		// if its not an IP
 | 
			
		||||
		if(!filter_var($ip, FILTER_VALIDATE_IP)){
 | 
			
		||||
			
 | 
			
		||||
			// resolve domain's IP
 | 
			
		||||
			$ip = gethostbyname($url_parts["host"] . ".");
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		// check if its localhost
 | 
			
		||||
		return filter_var(
 | 
			
		||||
			$ip,
 | 
			
		||||
			FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user