现在的位置: 首页 > web前端 > 正文

php利用vpnshadowsocks做跳板curl请求国外api

2020年02月12日 web前端 ⁄ 共 1136字 ⁄ 字号 评论关闭

最新做一个项目需要访问国外的api但是国内服务器不允许啊,想了一下不是有vpn吗,刚开始想用php代理到vpn的国外节点 但是对于vpn的加密混淆啥的不懂,所以google大法了一圈发现可以在本地安装vpn 然后php代理到本地vpn端口就可以访问了,于是开搞,下面是代码:

functionhttp_get($url){$ch=curl_init($url);curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'GET');curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,true);curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5_HOSTNAME);curl_setopt($ch,CURLOPT_PROXYAUTH,CURLAUTH_BASIC);//代理认证模式curl_setopt($ch,CURLOPT_PROXY,"127.0.0.1:1080");//代理服务器地址curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//https请求不验证证书和hostscurl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch,CURLOPT_TIMEOUT,4);$header=['User-Agent:Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.100Safari/537.36'];curl_setopt($ch,CURLOPT_HTTPHEADER,$header);$res=curl_exec($ch);if(!$res){$res=curl_error($ch);}curl_close($ch);return$res;}

CURLPROXYSOCKS5HOSTNAME是重点!不加后面的hostname的话就请求不到这一点也坑了我好久最终还是google大法找到了解决办法

这种方式是最简单也是最节省成本的代理大法了!

以上就上有关php利用vpnshadowsocks做跳板curl请求国外api的相关介绍,要了解更多php,curl,shadowsocks,vpn,代理,国外内容请登录学步园。

抱歉!评论已关闭.