代理IP在PHP cURL里怎么配?CURLOPT_PROXY和认证的四种写法

CURLOPT_PROXY基础代理、CURLPROXY_SOCKS5和CURLOPT_PROXYUSERPWD认证
发布于
4

PHP写采集脚本或API代理——cURL是最基础的HTTP客户端。代理IP的配置通过curl_setopt设置几个选项,写法比Python更直白。

基础HTTP代理

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://ip.sb");
curl_setopt($ch, CURLOPT_PROXY, "代理IP");
curl_setopt($ch, CURLOPT_PROXYPORT, 端口);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);
curl_close($ch);

SOCKS5代理

curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
# SOCKS5带认证
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "用户名:密码");

HTTP代理带认证

curl_setopt($ch, CURLOPT_PROXYUSERPWD, "用户名:密码");
# 或在代理URL里直接带
curl_setopt($ch, CURLOPT_PROXY, "http://用户名:密码@代理IP:端口");

天行IP(邀请码 blsj,月付6元起)静态节点在PHP cURL里直接配。

常见问题

cURL代理报”Failed to connect”?

检查代理端口和类型——CURLPROXY_HTTP和CURLPROXY_SOCKS5别写反。加curl_error($ch)看具体错误信息。

PHP代理请求比Python慢?

PHP的cURL底层也是libcurl——和命令行curl一样。速度差距来自代码实现而非cURL本身。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600