PHP验证HTTP代理可用性[支持批量]
程序员文章站
2023-12-23 08:27:58
...
这个程序主要用来验证HTTP代理的可用性,支持单个验证,以及批量验证。
程序写的也很简单,用来学习还是很不错的。
项目说明:
==============================================================================
1. 程序入口页tools.php 直接访问index.php也可以[程序会跳转]
2. HTTP代理验证[URL采集模式] 如果里面的代理很多的话不推荐使用, 验证时间会很长
3. 单个代理验证请使用 HTTP代理验证[SINGLE模式]
4. 批量验证请使用 HTTP代理验证[固定格式批量验证] 固定格式如下:
221.130.18.125:80@HTTP;江苏省南京市 移动
221.130.18.126:80@HTTP;江苏省南京市 移动
221.130.18.127:80@HTTP;江苏省南京市 移动
以上代理的内容每条占一行, 分号后面的内容可以没有 也就是说必须 保证这种格式: 221.130.18.125:80@HTTP;
5. 此代理验证工具只支持HTTP代理的验证, 不支持SOCKS代理验证.
6. 如果改编SOCKS代理的验证, 您只需要修改 class/class.proxy.php 核心文件即可, CURL模式里面自己修改下.
7. config.php配置文件说明
<?php $config = array( 'verify_url' => 'http://www.baidu.com/robots.txt', //用来验证代理的URL 'timeout' => 20, //用来验证代理的时间 'retry' => 2, //如果验证失败, 重试的次数 'root_path' => dirname(__FILE__), 'host' => 'http://'.$_SERVER['HTTP_HOST'] ); ?>
1.
2. [文件] class.proxy.php
<?php class proxy { private $proxy_ip; private $proxy_port; private $check_url; private $time_out; private $retry; public function __construct( $proxy_ip, $proxy_port, $check_url = 'http://www.baidu.com/robots.txt', $time_out = 30, $retry = 2) { $this -> proxy_ip = $proxy_ip; $this -> proxy_port = $proxy_port; $this -> check_url = $check_url; $this -> time_out = $time_out; $this -> retry = $retry; } public function check_proxy() { // 创建一个新cURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $this -> check_url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this -> time_out); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_PROXY, $this -> proxy_ip.':'.$this -> proxy_port); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 抓取URL并把它传递给浏览器 $i = 1; $result = false; while($i <= $this -> retry) { $result = curl_exec($ch); if( $result !== false && substr_count($result, 'User-agent: Baiduspider') >=1 ) { $result = true; break; } else { $result = false; } ++$i; } // 关闭cURL资源,并且释放系统资源 curl_close($ch); //成功返回boolean true, 失败返回boolean false return $result; } } ?>
3. [图片] UI界面.png