ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP中curl使用代理

2021-12-03 12:02:46  阅读:170  来源: 互联网

标签:ch setopt ip 代理 公网 服务器 curl PHP


PHP中使用代理的方式通过curl发送http请求

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,第9行设置了端口,既然有ip有端口,说明在该ip的服务器上应该有一个服务是正在监听这个端口的对吧?

没错,那这是个什么服务呢?

很简单,如果是Linux服务器,只需要一条命令就可以开启这个服务,而且什么都不需要安装!

ssh -ND 0.0.0.0:8989 127.0.0.1

在执行上面的命令的时候可能需要root权限,因为监听的是0.0.0.0,关于命令的具体解释,有兴趣大家可以去查阅ssh命令的使用,还有确保你的端口没有被防火墙限制。

其实,ssh命令的功能远不止如此,我们在使用ssh通道进行mysql链接时,也是使用的ssh命令建立的通道,这东西还能进行内网穿透,也就是让你的内网电脑里的服务可以让公网访问,前提是你得有一台公网服务器。这一台公网服务器可以让你的任何设备都变成一个公网可访问的设备。

标签:ch,setopt,ip,代理,公网,服务器,curl,PHP
来源: https://www.cnblogs.com/shizqiang/p/15637353.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有