首頁  >  文章  >  php教程  >  PHP验证HTTP代理可用性[支持批量]

PHP验证HTTP代理可用性[支持批量]

PHP中文网
PHP中文网原創
2016-05-25 17:11:462102瀏覽

这个程序主要用来验证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( 
    &#39;verify_url&#39;        =>        &#39;http://www.baidu.com/robots.txt&#39;,    //用来验证代理的URL 
    &#39;timeout&#39;        =>        20,                    //用来验证代理的时间 
    &#39;retry&#39;            =>        2,                    //如果验证失败, 重试的次数 
    &#39;root_path&#39;        =>        dirname(__FILE__), 
    &#39;host&#39;            =>        &#39;http://&#39;.$_SERVER[&#39;HTTP_HOST&#39;] 
); 
?>

1.

PHP验证HTTP代理可用性[支持批量]proxy.zip

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 = &#39;http://www.baidu.com/robots.txt&#39;, $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.&#39;:&#39;.$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, &#39;User-agent: Baiduspider&#39;) >=1 ) {
				$result = true;
				break;
			} else {
				$result = false;
			}
			++$i;
		}
		
		// 关闭cURL资源,并且释放系统资源
		curl_close($ch);
		//成功返回boolean true, 失败返回boolean false
		return $result;
	}
}
?>

3. [图片] UI界面.png    

           


PHP验证HTTP代理可用性[支持批量]

                                           

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn