检查代理ip的有效性
来源:互联网 发布:云计算ai工程师 编辑:程序博客网 时间:2024/06/04 18:47
/**
+-----------------------------------------------------------------------------
* 检查代理ip信息有效性
+-----------------------------------------------------------------------------
* @param string $proxy_ip [117.95.100.126:8998]
* @param int $times 执行检查次数
* @return array
* @author elinx <654753115@qq.com> 2016-07-29
+-----------------------------------------------------------------------------
*/
function
check_proxy_ip_info(
$proxy_ip
=false,
$times
=10) {
$header
=
array
(
// "GET / HTTP/1.1",
// "HOST: www.baidu.com",
"accept: application/json"
,
"accept-encoding: gzip, deflate"
,
"accept-language: en-US,en;q=0.8"
,
"content-type: application/json"
,
"user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"
,
);
$url
=
'http://www.baidu.com/'
;
$result
[
'succeed_times'
] = 0;
//成功次数
$result
[
'defeat_times'
] = 0;
//失败次数
$result
[
'total_spen'
] = 0;
//总用时
for
(
$i
=0;
$i
<
$times
;
$i
++) {
$s
= microtime();
$curl
= curl_init();
curl_setopt(
$curl
, CURLOPT_URL,
$url
);
//设置传输的url
curl_setopt(
$curl
, CURLOPT_HTTPHEADER,
$header
);
//发送http报头
curl_setopt(
$curl
, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(
$curl
, CURLOPT_ENCODING,
'gzip,deflate'
);
// 解码压缩文件
curl_setopt(
$curl
, CURLOPT_SSL_VERIFYPEER, false);
//不验证证SSL书
curl_setopt(
$curl
, CURLOPT_SSL_VERIFYHOST, false);
//不验证SSL证书
if
(@
$proxy_ip
!= false) {
//使用代理ip
curl_setopt(
$curl
, CURLOPT_HTTPHEADER,
array
(
'Client_Ip: '
.mt_rand(0, 255).
'.'
.mt_rand(0, 255).
'.'
.mt_rand(0, 255).
'.'
.mt_rand(0, 255),
));
curl_setopt(
$curl
, CURLOPT_HTTPHEADER,
array
(
'X-Forwarded-For: '
.mt_rand(0, 255).
'.'
.mt_rand(0, 255).
'.'
.mt_rand(0, 255).
'.'
.mt_rand(0, 255),
));
curl_setopt(
$curl
, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt(
$curl
, CURLOPT_PROXY,
$proxy_ip
);
}
curl_setopt(
$curl
, CURLOPT_COOKIEFILE, dirname(
__FILE__
).
'/cookie.txt'
);
curl_setopt(
$curl
, CURLOPT_COOKIEJAR, dirname(
__FILE__
).
'/cookie.txt'
);
curl_setopt(
$curl
, CURLOPT_TIMEOUT, 30);
// 设置超时限制防止死循环
// $response_header = curl_getinfo($curl); // 获取返回response报头
$content
= curl_exec(
$curl
);
if
(
strstr
(
$content
,
'百度一下,你就知道'
)) {
$result
[
'list'
][
$i
][
'status'
] = 1;
$result
[
'succeed_times'
] += 1;
}
else
{
$result
[
'list'
][
$i
][
'status'
] = 0;
$result
[
'defeat_times'
] += 1;
}
$e
= microtime();
$result
[
'total_spen'
] +=
abs
(
$e
-
$s
);
$result
[
'list'
][
$i
][
'spen'
] =
abs
(
$e
-
$s
);
$result
[
'list'
][
$i
][
'content'
] = json_encode(
$content
, true);
// $result['list'][$i]['response_header'] = $response_header;
}
$result
[
'precent'
] = (number_format(
$result
[
'succeed_times'
]/
$times
, 4)*100).
'%'
;
$result
[
'average_spen'
] = number_format(
$result
[
'total_spen'
]/
$times
, 4);
return
$result
;
}
阅读全文
0 0
- 检查代理ip的有效性
- PHP:检查代理ip的有效性
- 检查ip地址和子网掩码的有效性
- 代理IP 有效性检测
- C语言IP有效性检查
- xpath抓取代理IP并检测IP的有效性
- xpath抓取代理IP并检测IP的有效性
- javaBean属性有效性的检查
- 检查控件有效性的函数
- 验证西刺代理ip有效性
- 验证IP地址的有效性
- 第2.2章 scrapy之多进程检测代理ip的有效性
- 第38条:检查参数的有效性
- 使用python批量检查url的有效性
- (38):检查参数的有效性
- python学习之二 代理ip有效性验证
- JAVA 中 验证IP的有效性
- JAVA验证IP地址的有效性
- 如何利用Python和win32编程避免重复性体力劳动(三)——文本框操作:WM_GETTEXT 和WM_SETTEXT
- python numpy 矩阵用法
- scrapy抓取quote使用案例
- session和cookie的简单用法
- DUBBO 详细介绍
- 检查代理ip的有效性
- 利用栈和递归进行字符串逆序
- WOJ1222-Cheapest Palindrome
- 关于Collections的学习笔记
- vsftpd虚拟用户设置
- eclipse工作空间的基本配置
- Java_基础—网络编程(TCP协议代码及其优化和服务器多线程优化)
- 再次理解 归并排序
- Android Bitmap与String的相互转换