0

0

关于curl批量验证代理的一个问题

php中文网

php中文网

发布时间:2016-06-23 14:13:31

|

1167人浏览过

|

来源于php中文网

原创

curl多线程 代理 验证 proxy curl 多线程 代理 验证

问题是这样的:  我用curl多线程来验证代理....

for($i=0;$i<$maxconn;$i++)						/*循环加入句柄*/	{		add_curl_handle($mh,$proxyarr[$linknum],$limittime);				/*添加批处理的url*/		$linknum++;	}	do {		$mrc = curl_multi_exec($mh, $active);	} while ($mrc == CURLM_CALL_MULTI_PERFORM);	while ($active && $mrc == CURLM_OK)				/*处理下一个响应*/	{		if (curl_multi_select($mh) != -1) 			/*选择是响应的句柄*/		{			do 			{				$mrc = curl_multi_exec($mh, $active);		/*返回活动的链接*/			} while ($mrc == CURLM_CALL_MULTI_PERFORM);			if ($mhinfo = curl_multi_info_read($mh))		/*返回活动的句柄*/			{				$chinfo = curl_getinfo($mhinfo['handle']);	/*获得请求的数据*/				if($chinfo['http_code']==200)			/*判断是否为200状态*/				{__________________________________________________________________________现在重点是这里应该怎么写才能获取到这个验证成功的代理?这里的语句应该怎么写,好像curl_getinfo里面没有获取句柄使用的代理的功能..求高手指教.__________________________________________________________________________				}			}			curl_multi_remove_handle($mh, $mhinfo['handle']);			/*移除句柄*/			curl_close($mhinfo['handle']);								/*关闭请求*/			if(add_curl_handle($mh,$linkarray[$linknum],$limittime)&&$linknum<count($linkarray))					/*判断添加下一个句柄*/			{				do 				{					$mrc = curl_multi_exec($mh, $active);										} 				while ($mrc == CURLM_CALL_MULTI_PERFORM);				$linknum++;			}		}	}

回复讨论(解决方案)

有木有朋友在呀....在线等了10积分争了  貌似还没有回音...

你的 $proxyarr[$linknum] 是如何赋值的?

一般宜做成通过代理访问同一个网站(不知道你是否是这么做的)
这样只要某个 $mh 项能正常返回,就表示对应的代理是正确可用的

CURLOPT_PROXY 设置代理地址和端口
CURLOPT_PROXYUSERPWD 设置代理的用户名和口令

你也可以用
CURLOPT_HTTPPROXYTUNNEL、CURLOPT_PROXYAUTH、CURLOPT_PROXYPORT、CURLOPT_PROXYTYPE
做细节设置

你的 $proxyarr[$linknum] 是如何赋值的?

一般宜做成通过代理访问同一个网站(不知道你是否是这么做的)
这样只要某个 $mh 项能正常返回,就表示对应的代理是正确可用的

CURLOPT_PROXY 设置代理地址和端口
CURLOPT_PROXYUSERPWD 设置代理的用户名和口令

你也可以用
CURLOPT_HTTPPROXYTUNNEL、CURLOPT_PROXYAUTH、CURLOPT_PROXYPORT、CURLOPT_PROXYTYPE
做细节设置 是这样的  有关代理设置,参数设置我都已经做好了..现在就是在逐一获取多线程单一句柄的时候  获取改句柄到底使用的是那个代理  如果这个句柄返回的是200代码 我就可以吧这个代理保存下来.. 现在问题是没办法获取到这个句柄使用的代理

一般宜做成通过代理访问同一个网站(不知道你是否是这么做的)
这样只要某个 $mh 项能正常返回,就表示对应的代理是正确可用的 现在还是如果发现这个代理是可用的 ,,那么应该如何获取这个代理呢   因为是批量验证 所以每个句柄使用的都是不同的代理..网站倒是一样的

木有人在咯...版主大大呢

你的 $proxyarr 不是顺序加入 $mh 的吗?
嗯,你的后两节写的有些古怪
我一般这样写:
$mh = curl_multi_init();
//加入单个的curl
foreach ($urls as $i => $url) {
       $conn[$i] = curl_init($url);
       curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER,1);
       curl_multi_add_handle($mh, $conn[$i]);
}
//等待全部完成
do {
  curl_multi_exec($mh, $active);
}while($active);

//处理每个curl的返回
foreach ($urls as $i => $url) {
  $info = curl_getinfo($conn[$i]);//这里就是了
  curl_close($conn[$i]);
}

$conn 和 $urls 是一一对应的

//处理每个curl的返回
foreach ($urls as $i => $url) {
  $info = curl_getinfo($conn[$i]);//这里就是了
  curl_close($conn[$i]);
}

$conn 和 $urls 是一一对应的 明白了,,  这样子也是可以的,,其实是做法不一样  我是在多线程并发的时候等待完成的句柄小小一有消息就把好的代理输出来..想这样验证的代理一般都是几千个的.如果用你的做法,可能要把这几千个代理验证完了才能输出好的代理 ,时间太长了..还有一个地方不一样就是 我限制了并发的句柄的数量 只有等一个句柄完成了,才把下一个句柄添加进去..

还有木有人在呀 ,,,版主大大一个人忙不过来额  求各位来帮帮忙...

本帖最后由 xuzuning 于 2013-06-19 11:19:09 编辑

嗯,我不喜欢纸上谈兵
快与不快要做了才知道

Smile企业费用管理系统源码1.0
Smile企业费用管理系统源码1.0

一、源码特点企业费用管理系统,有权限分配,登陆验证,新增角色,发布公告等二、功能介绍1、js的兼容性有个地方不行(比如模块排序,那个时候也是雏鸟一只,写了一小撮,现在用jq应该好处理的吧,ie里面没问题,大家发挥吧)2、里面的菜单和对应菜单下面的目录项可以根据需求自己添加的,有对应模块3、可以根据自己设定的角色添加对应的访问页面4、有些操作涉及到按钮权限,对于这种思路,我粗粗的写了2个自定义控件,

下载

嗯,我不喜欢纸上谈兵
快与不快要做了才知道 现在没有纸上谈兵呀...- -  在解决这个问题我先这么做吧..效果出来再继续问你  可以私信给我你的QQ么
.

通过curl好像没有好的方式,你为什么不在请求的url是多传递一个参数,参数的内容就是$linknum,在获取的时候可以通过获取
$chinfo = curl_getinfo($mhinfo['handle']);
$chinfo['url']肯定就会带有这个$linknum

而你通过$linknum一定知道代理是什么

通过curl好像没有好的方式,你为什么不在请求的url是多传递一个参数,参数的内容就是$linknum,在获取的时候可以通过获取
$chinfo = curl_getinfo($mhinfo['handle']);
$chinfo['url']肯定就会带有这个$linknum

而你通过$linknum一定知道代理是什么 这个随便加一个参数会不会页面验证非法的参数二初二难题呢??

通过curl好像没有好的方式,你为什么不在请求的url是多传递一个参数,参数的内容就是$linknum,在获取的时候可以通过获取
$chinfo = curl_getinfo($mhinfo['handle']);
$chinfo['url']肯定就会带有这个$linknum

而你通过$linknum一定知道代理是什么 不过这也是个好方法...的确可行的..

过程有些波折  不过最后还是解决了 ..谢谢斑竹  还有下面"hnxxwyq"

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

705

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

233

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

117

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

22

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

61

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

30

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

669

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

58

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
php初学者入门课程
php初学者入门课程

共10课时 | 0.7万人学习

燕十八Nginx视频教程
燕十八Nginx视频教程

共23课时 | 5.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号