php请求转发器

内容目录

因为需要获取微信的accesstoken 但是又要限制ip 服务器出口ip太多不好控制 于是采用中转服务器 中转服务器上使用php进行请求转发 也就相当于服务器直接向目标服务器发送请求 目标服务器的ip白名单设置为中转服务器即可 php请求转发器的代码如下

<?php
header("Content-type:text/html;charset=utf-8");
//获取输入json
$data= file_get_contents("php://input");
function parse_url_param($str)  
{  
    $tmp_name=explode('?', $str);
    $data = array();  
    $parameter = explode('&', end($tmp_name));  
    foreach ($parameter as $val) {  
        $tmp = explode('=', $val);  
        $data[$tmp[0]] = $tmp[1];  
    }  
    return $data;  
}  
$result=$_SERVER["QUERY_STRING"];
$result=parse_url_param($result);
//发送数据
$url=urldecode($result['url']);
//生成文件
$file  = 'logurl.txt';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个
if($f  = file_put_contents($file,$url."\r\n",FILE_APPEND)){// 这个函数支持版本(PHP 5) 
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: '.strlen($data))
);
$result = curl_exec($ch);
curl_close($ch);
//输出返回结果
print_r($result)
?>

路径如http://localhost/test.php?url=XXXX形式 xxxx使用urlencode转码过 返回json数据就是url请求的数据

发表回复