CURL 代理问题:我的代码有效吗?

Posted

技术标签:

【中文标题】CURL 代理问题:我的代码有效吗?【英文标题】:TROUBLE WITH CURL PROXY: Is my code working? 【发布时间】:2020-08-12 00:58:30 【问题描述】:

美好的一天!我在 PHP 脚本 上使用代理时遇到问题。谁能帮帮我?

我的代码:

<?php
function proxies()

  $proxylist = file("proxy.txt");
  $randomproxy = rand(0, sizeof($proxylist) - 1);
  $proxylist = $proxylist[$randomproxy];
  return $proxylist;

$ch = curl_init();
$proxy = proxies();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_setopt($ch, CURLOPT_URL, 'ifconfig.me/ip');
$ip = curl_exec($ch);
curl_close($ch);
echo $ip;
?>

我正在使用 XAMPP 来查看我的脚本,但每当我尝试对其进行测试时。我只会遇到空白页的结果。但每当我尝试这个代码

<?php
function proxies()

  $proxylist = file("proxy.txt");
  $randomproxy = rand(0, sizeof($proxylist) - 1);
  $proxylist = $proxylist[$randomproxy];
  return $proxylist;

$ch = curl_init();
$proxy = proxies();
curl_setopt($ch, CURLOPT_PROXY, '123.456.78.90:8080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_setopt($ch, CURLOPT_URL, 'ifconfig.me/ip');
$ip = curl_exec($ch);
curl_close($ch);
echo $ip;
?>

它会完美运行,我想知道我的功能是否有问题,但每当我尝试echo $proxy 时,它会显示列表中的代理,所以我真的很困惑我哪里出错了。

如果你们能帮助我,我真的很感激。谢谢!

【问题讨论】:

你能给我看看你的 proxy.txt 文件,以便我可以在我的笔记本电脑上测试它 @NalinNishant 当然,我很乐意与您分享。这里! ProxyList 我解决了你的问题......实际上你的两个答案都是错误的 我将在几分钟内发布答案 @NalinNishant 我很感激!谢谢! 【参考方案1】:

您现在需要使用CURLOPT_PROXYPORT 删除txt 文件中的所有代理,然后从中获取值并将其拆分为端口和IP,然后在curl 字段中使用其值。

     <?php
function proxies()

  $proxylist = file("proxy.txt");
  $randomproxy = rand(0, sizeof($proxylist) - 1);
  $proxylist = $proxylist[$randomproxy];
  $words = explode(':', $proxylist);
  return $words;
  //var_dump($words);

$proxy = proxies();
$ch = curl_init();
//var_dump($proxy);
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]);  
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
curl_setopt($ch, CURLOPT_URL, 'ifconfig.me/ip');
$ip = curl_exec($ch);
curl_close($ch);
if(empty($ip))
  echo 'IP not working remove it -'.$proxy[0];
else
  echo ' - Working';

// var_dump($ip);
?>

在这个ip上测试成功-45.55.159.57:9359

【讨论】:

以上是关于CURL 代理问题:我的代码有效吗?的主要内容,如果未能解决你的问题,请参考以下文章

我的 cURL 代码有啥问题(http 状态为 0)吗?

为啥这个检查代理有效性的代码会崩溃?

存储 cURL cookie 有啥好处吗?以及相关问题

POST instagram api 跟随 cURL PHP

EF 代码首先使用有效负载、复合键或代理键进行多对多

使用代理的 http GET - Curl 命令有效,但 python“请求”库不