【问题标题】:URL Parameter Proxy ScriptURL 参数代理脚本
【发布时间】:2016-02-23 23:13:16
【问题描述】:

有没有办法通过 URL 参数设置代理?该脚本应在 Ubuntu 服务器上运行。或者有没有可能用鱿鱼或类似的东西来完成这个?

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

我已经尝试了一些 PHP 代理脚本,但它并没有真正使用它。它应该以流的形式打开一个文件,但是通过一些脚本加载整个文件,然后我得到一个输出,或者它不适用于 Safari,并且在每个浏览器上我都遇到了 javascript 的错误来获取流的信息。

这可能会有所帮助,为什么它不适用于 safari。我不知道如何更多地编辑标题。接受范围等已设置

【问题讨论】:

    标签: javascript php linux ubuntu proxy


    【解决方案1】:

    另一个编辑

    在这里试试这个代码。发布已实现。

    $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/ 之类的查询调用文件。

    【讨论】:

    • 糟糕!这是file_get_contents,不是get_file_contents
    • 您的 PhP/服务器/主机是否允许您请求任意页面(域外的文件/向服务器发送请求)?
    • 不,它可以工作,但不能按我的需要工作。例如,这会“下载”整个文件,然后将其输出。我也尝试使用 fopen 流。在像 Firefox 这样的浏览器上它可以工作,但在 Safari 上却不是。任何 Javascript/jQuery 函数在这种方式上都有错误,所以我无论如何都不能使用它问题是主脚本进行 POST 并获取文件的 URL,文件 URL 被分配给 IP 地址。所以我无法将网站上的直接链接和跨域 POSTS 与 jQuery 也不起作用
    • @KimSchaper 好的。有一种方法可以使用发布请求。不过我还没有完全确定...
    • @KimSchaper 我用可以工作的代理更新了帖子。唯一的问题是它不解析相对 url。
    【解决方案2】:

    如果你想要一个 php 代理开始,你应该使用Glype Proxy

    另外,您的 URL http://proxyserver.com:3128/http://google.de 无效并被视为格式错误的 URL。

    要修复它,您必须转义另一个 URL(使用查询字符串左右)。例如$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']

    【讨论】:

    • 这是我提到的 php 代理脚本之一。不要使用 Safari 和其他浏览器上的错误
    【解决方案3】:

    我解决了。

    我使用了带有proxy_pass参数的nginx服务器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-17
      • 2014-12-25
      • 2013-04-20
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多