【问题标题】:proxy in php script and connect to it via browserphp脚本中的代理并通过浏览器连接到它
【发布时间】:2012-08-22 21:49:12
【问题描述】:

我能找到任何充当代理服务器(socks、http、..)的 php 脚本并通过 firefox 连接到它(就像任何其他代理服务器一样) (例如,在该脚本充当代理之后首先运行脚本,...) 我想绕过过滤

我已经看到了这个 sourceforge.net/projects/php-proxy,我需要像 socks 代理一样连接到它

我没有任何服务器可用作 ssh 隧道或在其中安装其他代理应用程序我只有服务器并允许在其中运行任何 php screapt

坦克

【问题讨论】:

  • 您是在尝试构建自己的代理服务器,还是在寻找完成的脚本?如果是后者,Stackoverflow 可能不是问这个问题的网站。

标签: php proxy socks


【解决方案1】:

代理服务器基本上只做一件简单的事情:它会加载您请求的日期(为了更容易,我会在其余答案中假设它是一个网站)并将其发送给您。因为您不直接连接到该网站,它认为您在确实请求页面的位置:您的服务器。

有多种方式可以连接到代理服务器,其中一些使用自定义协议,而您可以在网络浏览器中使用 http(s) 连接到其他人。因为您提到您想使用 Firefox 连接到您的代理,所以我假设您需要一个网络代理,例如 hidemyass.com

当您在网络代理上请求网页时,会按此顺序发生以下事情:

  1. 您的计算机向 Web 代理发送请求。在此请求中也是您要加载的网站的地址;
  2. 代理打开您请求的网站。由于网站基本上只是一个数据文档,因此您可以使用file_get_contents() 等简单函数打开它。或者,您可以使用CURL 获得更多选项和更好的性能。您将此数据保存在变量中;
  3. 代理现在已经获得了网站,但还不能向用户显示。因为几乎每个网站都加载其他文件(如样式表、脚本、图像,甚至其他 HTML 文档),所以您还需要使用代理而不是用户的 Internet 连接来加载这些文件。实现这一点的最简单(而且不是无懈可击)的方法可能是在数据中查找每个 http:// 并将其替换为对您的代理服务器的请求;
  4. 现在您已将网站保存在服务器上的变量中,您只需将其显示给用户即可。您可以将其打印到屏幕上。请务必使用请求的文件传递正确的标头!

请注意,这不是完美的代理服务器:例如,您还需要支持 https 请求并检查 AJAX 请求(或完全禁用 Javascript,许多代理服务器都会这样做)。如果您只想使用代理服务器,我建议您查看现有的(或您链接到的 Sourceforge 项目中的 cmets,其中包含指向更好替代方案的链接)。但是,如果您发现这是一个有趣的项目,那么祝您好运!

【讨论】:

    猜你喜欢
    • 2016-08-10
    • 2015-10-23
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2010-09-19
    • 2014-08-20
    相关资源
    最近更新 更多