2016-02-23 62 views
1

有沒有辦法通過URL參數設置代理?該腳本應該在Ubuntu服務器上運行。或者是否有可能用魷魚或類似的東西做到這一點?URL參數代理腳本

http://proxyserver.com:3128/http://google.de

我已經嘗試了一些PHP腳本代理,但它真的與它的工作不是。它應該打開一個文件作爲流,但一些腳本加載整個文件,然後我得到一個輸出或它不適用於Safari和每個瀏覽器我得到的錯誤與JavaScript獲取流的信息。

可能這會有所幫助,爲什麼它不適用於safari。我不知道如何編輯標題更多。接受-範圍等設置

回答

0

另一個編輯

這裏試試這個代碼。郵政實施。

$url = $_GET["url"]; 
$method = $_SERVER["REQUEST_METHOD"]; 
$data = array($_POST); 
$options = array(
    "http" => array(
    "header" => "Content-type: application/x-www-form-urlencoded\r\n", 
    "method" => $method, 
    "content" => http_build_query($data), 
), 
); 
$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
$filter = "/(http|https|ftp|ftps)(:\/\/)/i"; 
$result = preg_replace($filter, "http://YOURDOMAIN.com/FOLDER/LOCATIONOFTHEPROXY.php?url=$1$2", $result); 
echo $result; 
var_dump($result); 

編輯

Here我發現一些代碼,使用PHP爲POST。現在只需要實施它。

<?php 
$url = "url to post to; 
$data = array("comment" => "Testing PhP Post", "name" => "A PhP Script"); 
// use key "http" even if you send the request to https://... 
$options = array(
    "http" => array(
    "header" => "Content-type: application/x-www-form-urlencoded\r\n", 
    "method" => "POST", 
    "content" => http_build_query($data), 
), 
); 
$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
if ($result === FALSE) { /* Handle error */ } 
echo $result; 
var_dump($result); 
?> 

你試過file_get_contents()

試試這個:

<?php 
    echo file_get_contents($_GET["url"]); 
?> 

呼叫與像?url=http://google.com/查詢該文件。

+0

糟糕!它是'file_get_contents',而不是'get_file_contents'。 –

+0

是的,我嘗試了很多變化,這是行不通的 –

+0

您的PhP /服務器/託管允許您請求任意頁面(您的域之外的文件/發送請求到服務器)? –

0

如果你想有一個PHP的代理,開始時,你應該Glype Proxy

加上去,您的網址http://proxyserver.com:3128/http://google.de是無效的,並認爲錯誤的URL。

要修復它,你必須轉義另一個URL(使用查詢sting等)。例如$URL_in_PHP = "http://proxyserver.com:3128/?url=".urlencode('http://google.de');

var URL_in_javascript = "http://proxyserver.com:3128/?url="+encodeURI('http://google.de');

,並告訴你的代理服務器導航到$_GET['url']

+0

這是我提到的php代理腳本之一。不要使用Safari和其他瀏覽器上的錯誤 –

0

我解決它。

我用了一個帶有proxy_pass參數的nginx服務器