说明
此项目最初制作的目的并不是用来访问境外网站!(虽然我视频里面是这么干的)但是!此项目的真正目的是为某些无法直接调用https请求的物联网设备(如ESP8266)设计的,将此项目布置到非https站点,便可让只支持http的设备请求https。
演示
本来是有演示的!但是proxy.tttttttttt.top这个演示在发布后不久就受到了极其夸张的访问,导致服务器直接被封了
而且从日志里面来看,大多都拿来在访问境外网站。还有一堆人问xxx网站无法访问/访问异常/页面内容缺失……从原理上这就没办法解决,因为代理过来的页面引用的外部资源(如img css js等等)都不会经过代理,页面显示正常才怪。
构建
目前代码已经重写,支持设置Header参数,当header未指定时自动获取访问者的User-Agent并转发目标服务器
<?php
if(isset($_GET["URL"])){
$url = $_GET["URL"];
if(isset($_GET["Header"])){
$headers = array($_GET["Header"]);
}else{
$headers = array();
$UserHeaders = getallheaders();
$headers = "User-Agent: ".$UserHeaders["User-Agent"];
}
$context = stream_context_create(array('http' => array('header' => $headers)));
$content = file_get_contents($url, false, $context);
}else{
$content = file_get_contents("../main/html");
}
echo($content);
?>
使用
请求需要两个参数,URL和Header参数,其中Header参数是可选的。示例:只提供URL参数,返回https://api.com/的内容 https://yours.com/name.php?URL=https://api.com/ 提供URL和Header参数,服务器请求时使用Header,返回https://api.com/的内容(此处用IE11的UA进行示例) https://yours.com/name.php?URL=https://api.com/&Header=user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
如果你觉得我做的不错的话,可以赞赏我吗?谢谢啦~