欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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.

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 = '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


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

上一篇:

下一篇: