Skip to content

SpenceZhou/IPProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

#项目介绍 一个简单的ip代理扫描程序,大家可以一起改改,服务于万千爬虫程序员。(感觉单机比较无力,效率太低,暂时不维护此项目。)

##思路 暴力

获取国内的ip段(因为我个人只是需要国内的代理来做爬虫),然后一一去测试,看是否可做ip代理。 由于开始没有前期数据,所以需要全部扫描一遍,比较耗费时间。然后形成有历史数据之后扫描效率会大幅提升。 程序分为以下几部分: ###获取待处理ip资源和端口资源 ####方式

  • 获取国内ip段,参照查错IT网信息,将ip资源统一划分为:xxx.xxx.xxx.0/24格式,供后续使用。
  • 由于计算机端口较多,但常用作代理的端口却比较固定(比如:80,8080,8123)等,建立常用端口词典,提高程序效率。

####问题 现在存在ip资源多(ipv4已分配36亿,中国占9.28%),单机处理能力有限,如果全部扫描则程序效率(单位时间,资源下查询出的可用代理数量)很低。 ####解决思路 解决思路,根据历史数据建立可能出现ip代理资源的ip词典,每次扫描从词典数据和相邻ip扫描。 ####拓展 实现按照区域(国家,省份)、服务商类型(电信,移动,网通)等多种条件来筛选待测试ip资源。

###代理测试 ####方式

  1. 首先试用ping的方式测试待测ip是否可以跟本机建立网络连接。
  2. 通过步骤1的进行代理测试,将ip和常用端口形成组合进行:xxx.xxx.xxx.xxx:xxx的格式。
  3. 使用httpclient中的代理功能,将步骤2中的ip和port组合设为请求的代理进行请求。
  4. 如果请求成功,且请求结果与预设结果相同则说明测ip和端口组合可作为代理资源输出。
  5. 注:大型网站都包含robots.txt来对Robots协议进行说明,故本程序以robots.txt文件进行代理测试请求。

####问题 不能提供代理类型(http,https,socket)和匿名类型(透明,普匿,高匿)信息。 ####解决思路 有待熟悉代理的高手帮忙。 ####拓展 实现对代理信息的完善(参照问题)。

##其他说明 程序相对比较简陋,只是业余时间的半成品,并未进行性能调优,可能程序比较占内存(开线程数量有关)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages