PHP中curl使⽤代理
PHP中使⽤代理的⽅式通过curl发送http请求
curl是什么命令
curl是PHP中经常⽤来发送http请求的扩展,⽐如我们要通过PHP调⽤⼀个第三⽅接⼝,那么就会⽤到这个扩展提供的⽅法。
⽬前,开发相关的应⽤很⼴泛,然⽽某些安全系数要求很⾼的接⼝是需要配置ip⽩名单才能调⽤的,我们在本机进⾏开发的时
候,ip地址往往都是变化的,所以就要经常去配置ip⽩名单。
⼀般来说,我们开发应⽤的时候都会有开发使⽤的服务器,上⾯运⾏着数据库,redis这样的服务供我们本机开发使⽤,当然这些服务都装在本机也是没问题的,只不过有时候数据库⾥的数据⼤家可能需要共享,所以⼀般会使⽤⼀台公⽹服务器更⽅便⼤家开发。
⽽这台公⽹服务器的ip地址是不变的,⼀般我们都是买的云服务器,会提供⼀个固定的公⽹服务器ip地址,我们在使⽤curl的时候可以通过这台公⽹服务器代理发送我们的请求,这样ip地址就会⼀直保持不变了。
下⾯看具体实现代码:
1$ch = curl_init();
2 curl_setopt($ch, CURLOPT_URL, $url);
3 curl_setopt($ch, CURLOPT_POST, 1);
4 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
5 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
6 curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
7 curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
8 curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1");
9 curl_setopt($ch, CURLOPT_PROXYPORT, 8989);
10$output = curl_exec($ch);
11 curl_close($ch);
注意到以上6-9⾏代码就是⽤来设置代理的部分,第8⾏设置了代理的服务器ip(注意:需要改成⾃⼰的公⽹服务器IP),第9⾏设置了端⼝,既然有ip有端⼝,说明在该ip的服务器上应该有⼀个服务是正在监听这个端⼝的对吧?
没错,那这是个什么服务呢?
很简单,如果是Linux服务器,只需要⼀条命令就可以开启这个服务,⽽且什么都不需要安装!
ssh -ND 0.0.0.0:8989127.0.0.1
在执⾏上⾯的命令的时候可能需要root权限,因为监听的是0.0.0.0,关于命令的具体解释,有兴趣⼤家可以去查阅ssh命令的使⽤,还有确保你的端⼝没有被防⽕墙限制。
其实,ssh命令的功能远不⽌如此,我们在使⽤ssh通道进⾏mysql链接时,也是使⽤的ssh命令建⽴的通道,这东西还能进⾏内⽹穿透,也就是让你的内⽹电脑⾥的服务可以让公⽹访问,前提是你得有⼀台公⽹服务器。这⼀台公⽹服务器可以让你的任何设备都变成⼀个公⽹可访问的设备。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。