用perl获取可用的代理服务器地址
对于网速慢,被墙的朋友,你们有福了,我现在把我经常获取可以的代理服务器地址的代码发出来
- ##########################################
- #获取有效http代理服务器列表程序
- #作者:yifangyou
- #创建时间:2011-03-27 17:14:00
- #本程序实现
- #1.从代理网站获取代理服务器列表
- #2.逐个检测代理服务器是否可用
- ##########################################
- package yifangyou;
- use LWP::Simple;
- use LWP::UserAgent;
- use strict;
- use warnings;
- use LWP::Simple qw( $ua get );
- #代理服务器ip和端口存放的地方
- my @proxys=();
- #已经检测完的代理服务器ip和端口存放的地方
- my @checkedProxys=();
- #已经检测完的代理服务器ip和端口存放的地方,我用的百度首页的图标
- my $stdUrl="http://www.baidu.com/img/baidu_sylogo1.gif";
- #代理服务器列表页面的url,可以加多个页面
- my @urls=("http://www.5uproxy.net/http_fast.html");#,"http://www.5uproxy.net/http_anonymous.html","http://www.5uproxy.net/http_non_anonymous.html");
- $ua->timeout(3); # 3秒超时
- $ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"); # 模拟xp ie7浏览器
- #获取待验证的代理服务器列表
- foreach my $url(@urls){
- getProxyAddr($url);
- }
- #验证代理服务器列表
- foreach my $proxyAddr(@proxys){
- checkProxyAddr($stdUrl,$proxyAddr);
- }
- #输出所有结果
- print join(",",@checkedProxys)."\n";
- #获取待验证的代理服务器列表
- sub getProxyAddr
- {
- my $url=shift;
- my $document = get($url);
- return print "cannot get $url\n" unless defined $document;
- my @lines=split("\n",$document);
- my $i=0;
- my @matches;
- for($i=0;$i<@lines;$i++){
- #获取ip
- if(@matches=$lines[$i]=~/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i) {
- my $ip=$matches[0];
- #获取端口
- if(@matches=$lines[$i+1]=~/<td.*>(\d{1,6})<\/td>/i) {
- my $port=$matches[0];
- push(@proxys,"$ip:$port");
- }
- }
- }
- }
- #验证代理服务器列表
- sub checkProxyAddr{
- my $url=shift;
- my $proxyAddr=shift;
- $ua->proxy(['http'], "http://$proxyAddr"); # 设http代理服务器
- my @headcontent=head($url); #取head比较快
- if(scalar(@headcontent)==0){
- # print "Could not get head from $proxyAddr\n";
- return -1;
- }else{
- print "$proxyAddr\n";
- push(@checkedProxys,"$proxyAddr");
- return 0;
- }
- # my $ua = new LWP::UserAgent;
- # $ua->timeout(3); # 3秒超时
- # $ua->proxy(['http'], "http://$proxyAddr"); # 设http代理服务器
- # $ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"); # 模拟xp ie7浏览器
- # my $req = new HTTP::Request->new(GET => $url);
- # my $res = $ua->request($req);
- # if ($res->is_success){
- # print "$proxyAddr\n";
- # push(@checkedProxys,"$proxyAddr");
- # return 0;
- # }else {
- # print "Could not get head from $proxyAddr\n";
- # return -1;
- # }
- }
本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/605763,如需转载请自行联系原作者
用perl获取可用的代理服务器地址相关推荐
- 使用Python自动获取可用代理列表
今天闲来无事,随便写的一个从代理发布网站上提取可用代理列表的脚本. 运行后,可以获取http://cn-proxy.com/发布的可用代理ip和端口的列表. 运行效果如下: 源代码如下,请指教: # ...
- 客户机不能看到分配的dhcp_交换机配置DHCP后下挂用户获取不到IP地址或者获取缓慢...
问题描述 S5700做DHCP SERVER下接接入交换机,接入交换机连至用户侧,用户侧发现无法获取IP地址. 图1-1 组网图 处理过程 1. 按照产品文档排查DHCP SERVER配置是否有问题, ...
- 获取客户端真实IP地址
Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...
- 获取访问者的IP地址
2019独角兽企业重金招聘Python工程师标准>>> HTTP_X_FORWARDED_FOR:浏览当前页面的用户计算机的网关 如果用户是通过代理服务器浏览的 那么使用REMOTE ...
- python扫描proxy并获取可用代理ip列表
mac或linux下可以work的代码如下: # coding=utf-8import requests import re from bs4 import BeautifulSoup as bs i ...
- apache/nginx中equest.getServerName()外网环境获取不到代理地址/域名
2019独角兽企业重金招聘Python工程师标准>>> 前两天做了个项目,让同事拿去投标,为了给用户演示,需要外网访问,于是配置了apache代理.随之问题就来了,外网访问的时候,r ...
- php获取当前页面地址代码,PHP获取当前页面URL地址程序代码
在php中要获取当前页面url地址方法很简单,下面我来给大家总结一下利用相关函数获取完整页面url地址的实例. PHP的预定义变量$_SERVER是一个包含头部(headers),路径信息及脚本位置的 ...
- 如何使用JavaScript获取客户端的IP地址?
我需要以某种方式使用JavaScript检索客户端的IP地址: 没有服务器端代码,甚至没有SSI. 但是,我不反对使用免费的第三方脚本/服务. #1楼 在您的页面中包含以下代码: <script ...
- 穿透代理获取用户真实IP地址
文章目录 一.场景 二.方法 1.微信官方方法 (1)没有代理 (2)有代理 2.非官方方法 (1)代码 (2)说明 (3)补充 一.场景 在对接微信H5支付API时,有一关键步骤是获取到用户的真实I ...
最新文章
- android获取时区时间格式,考虑时区的日期/时间转换-Android
- 《数据库原理与应用(第3版)》——习题
- linux系统下docker安装,Linux下Docker的安装与使用
- Java 实现MapReduce函数
- 企业实战_23_MyCat SQL防火墙
- java异常代码分析
- 面试问题:MyBatis和Hibernate的区别
- Zlib解压/压缩实现
- 语料库python_NLPPython笔记——语料库
- 家庭记账本开发进度6
- oracle 负载均衡连接方式常用SQL语句备忘录
- 鼎信诺取数oracle,鼎信诺审计前端取数讲解(最新).ppt
- 别让孩子遭受“爱的伤害”
- Kubernetes Service与Ingress详解
- IOI2018退役记 + NOIP2018游记
- 苹果有arkit,android,ARKit来袭:苹果ar支持哪些设备,苹果手机怎么使用ar?
- 东方甄选双语直播火爆出圈,新东方转型初见端倪
- 【科普】机密资产Confidential Asset白皮书(1)
- android四大组件之四-BroadCast实现原理分析
- 交换机的重要技术参数
热门文章
- TalkingData:2014年移动打车应用行业报告
- Mysql中大表添加索引的办法
- 嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题...
- 写作预报之Hyper-V Server的图形化管理系统配置!
- sql server 2005中新增加的try catch学习
- antv g2字体阴影_antv g2的理解总结
- Metasploit运行环境内存不要低于2GB
- Maltego更新到4.1.6
- 网页图表Highcharts实践教程之认识Highcharts
- usb serial converter驱动安装_让你到期的机顶盒再发挥余热,终极办法任意安装软件,三网可用...