我正在尝试回复。
使用curl_exec
工作正常,但问题是它获得了不同IP的响应。
我希望从客户端或用户IP获得响应,而不是服务器IP。
$URL = "https://drive.google.com/get_video_info?docid=".$_SERVER["QUERY_STRING"];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 2);
$response_data = urldecode(urldecode(curl_exec($curl)));
答案 0 :(得分:0)
curl
在服务器上运行,而不在客户端运行。 curl发出的任何HTTP命令都将使用服务器IP作为请求者。
根据您调用的服务,可能您可以使用Internet代理中使用的X-Forwarded-For
HTTP标头。
$URL = "https://drive.google.com/get_video_info?docid=".$_SERVER["QUERY_STRING"];
$curl = curl_init();
// set the command as requested by the client IP
curl_setopt($curl,CURLOPT_HTTPHEADER,array('X-Forwarded-For: '. $_SERVER['REMOTE_ADDR']));
curl_setopt($curl, CURLOPT_URL, $URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 2);
$response_data = urldecode(urldecode(curl_exec($curl)));
您正在调用的服务可以使用标头来确定发起方的IP。使用X-Forwarded-For
将无法与所有服务和服务器端框架一起使用。
XMLHttpRequest
或JQuery或Angular中的某些功能)来发出请求。您可以查看:
X-Forwarded-For
后:Get the client IP address using PHP X-Forwarded-For
与curl:How can I spoof the sender IP address using curl? 答案 1 :(得分:0)
让客户端在自己的计算机上安装curl,并在那里运行代码,或让客户端在其计算机上安装代理,然后通过客户端使用CURLOPT_PROXY&代理您的连接。共