Показать сообщение отдельно

  #5  
Старый 13.06.2009, 22:14
HIVER
Познающий
Регистрация: 28.10.2008
Сообщений: 43
С нами: 9229334

Репутация: 125
По умолчанию

Цитата:
Сообщение от InFlame  
C Socks-версией всё понятно, а поддержка HTTPS когда-нибудь будет?
Код:
<?php

$secret = 'pwd';

if (isset($_POST["transfer"]) && $_POST["transfer"] != "")
	{
	if(isset($secret) && ($_POST['secret'] != $secret))exit;
	$transfer_hosts = explode("::", base64_decode($_POST["transfer"]));
	$next_host = array_shift($transfer_hosts);
	$postfields = array(
						"query" => $_POST['query'],
						"host" => $_POST['host'],
						"secret" => $_POST['secret']
						);
	if ($transfer_hosts[0] != "") $postfields["transfer"] = base64_encode(implode("::", $transfer_hosts));
	$ch = curl_init($next_host);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	$result = curl_exec($ch);
	curl_close($ch);
	echo $result;
	} else {
	if(isset($_POST['query']) && isset($_POST['host']))
		{
		if(isset($secret) && ($_POST['secret'] != $secret))exit;
		header('Content-type: application/octet-stream');
		@set_time_limit(0);
		$query = base64_decode(str_replace(" ", "+", $_POST['query']));
		list($host, $port) = explode(':', base64_decode(str_replace(" ", "+", $_POST['host'])));
		if(!$port) {if (eregi("https:", $host) && !$port) {$port = 443;} else {$port = 80;}}
		$ip = gethostbyname($host);
		if($fp = @fsockopen($ip, $port, $errno, $errstr, 20))
			{
			fwrite($fp, $query);        
			while(!feof($fp))
				{
				$answer = fread($fp, 1024);
				echo $answer;
				}
			fclose($fp);
			}
		exit;
		}
	}
?>
Изменения в строке
Код:
if (!$port) $port=80;
на
Код:
if(!$port) {if (eregi("https:", $host) && !$port) {$port = 443;} else {$port = 80;}}
и вуаля, https есть

Последний раз редактировалось HIVER; 14.06.2009 в 08:14..
 
Ответить с цитированием