精华内容
下载资源
问答
  • 最新免费代理服务器地址

    万次阅读 2021-03-08 15:55:26
    下面来看下最新免费socks5代理服务器地址有哪些? 免费socks5代理IP地址 31.199.192.20:1080@SOCKS4#意大利 46.232.207.166:1080@SOCKS4#俄罗斯 61.141.21.34:1080@SOCKS4#广东省汕头市 图书馆 61.234.37.118:10.

    image.png

    虽然在市场上有其他类型的代理,SOCKS和HTTPS代理是市场上的主要代理,并且在顶级代理提供者的支持下可以使用。HTTPS是HTTP的安全性和改进版,SOCKS5是对SOCK协议进行安全性改进的版。下面来看下最新免费socks5代理服务器地址有哪些?

    免费socks5代理IP地址

    31.199.192.20:1080@SOCKS4#意大利

    46.232.207.166:1080@SOCKS4#俄罗斯

    61.141.21.34:1080@SOCKS4#广东省汕头市 图书馆

    61.234.37.118:1080@SOCKS4#广西南宁市 铁通

    80.78.75.170:1080@SOCKS4#阿尔巴尼亚

    80.82.51.38:1080@SOCKS4#俄罗斯

    94.45.134.190:1080@SOCKS4#乌克兰

    120.234.6.50:1080@SOCKS4#广东省肇庆市 移动

    120.234.15.130:1080@SOCKS4#广东省肇庆市 移动

    138.97.236.13:1080@SOCKS4#北美地区

    159.255.165.234:1080@SOCKS5#伊拉克

    159.255.165.234:1080@SOCKS4#伊拉克

    162.105.9.230:1080@SOCKS5#[C]北京市 北京大学计算中心

    162.105.9.230:1080@SOCKS4#[C]北京市 北京大学计算中心

    162.105.18.60:1080@SOCKS5#[C]北京市 北京大学数学系/心理系

    162.105.18.60:1080@SOCKS4#[C]北京市 北京大学数学系/心理系

    162.105.18.62:1080@SOCKS5#[C]北京市 北京大学数学系/心理系

    162.105.18.62:1080@SOCKS4#[C]北京市 北京大学数学系/心理系

    162.105.23.111:1080@SOCKS5#[C]北京市 北京大学地球物理系

    162.105.23.111:1080@SOCKS4#[C]北京市 北京大学地球物理系

    162.105.25.120:1080@SOCKS5#[C]北京市 北京大学力学系

    162.105.25.120:1080@SOCKS4#[C]北京市 北京大学力学系

    162.105.25.123:1080@SOCKS5#[C]北京市 北京大学力学系

    162.105.25.123:1080@SOCKS4#[C]北京市 北京大学力学系

    166.111.81.246:1080@SOCKS5#[C]北京市 清华大学软件学院

    166.111.81.246:1080@SOCKS4#[C]北京市 清华大学软件学院

    166.111.132.16:1080@SOCKS5#[C]清华大学学生宿舍

    166.111.132.16:1080@SOCKS4#[C]清华大学学生宿舍

    189.52.165.134:1080@SOCKS4#巴西

    216.37.138.181:80@SOCKS4#美国

    217.77.221.209:1080@SOCKS4#乌克兰

    1.179.181.149:8080@HTTP#泰国 TOT公共有限公司

    1.179.183.89:8080@HTTP#泰国 TOT公共有限公司

    31.11.177.235:80@HTTP#波兰

    36.72.229.102:8080@HTTP#印度尼西亚

    37.187.116.199:80@HTTP#法国 OVH SAS

    41.188.149.42:8080@HTTP#【匿】坦桑尼亚

    41.205.231.202:8080@HTTP#塞拉利昂

    46.21.72.68:8080@HTTP#俄罗斯

    51.254.132.238:80@HTTP#【匿】英国 社会保险安全部

    58.240.53.196:80@HTTP#江苏省南京市 联通

    61.219.70.133:8080@HTTP#【匿】台湾省 中华电信(HiNet)数据中心

    62.140.252.21:8081@HTTP#俄罗斯

    78.140.6.68:53281@HTTP#俄罗斯

    91.134.221.168:80@HTTP#保加利亚

    95.85.50.218:80@HTTP#俄罗斯

    118.69.205.201:4624@HTTP#柬埔寨

    118.69.205.220:4624@HTTP#柬埔寨

    118.97.191.205:8080@HTTP#印度尼西亚

    119.252.160.34:8080@HTTP#印度尼西亚

    120.52.72.19:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.23:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.24:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.32:80@HTTP#【匿】北京市 联通云BGP数据中心

    120.52.72.46:80@HTTP#【匿】北京市 联通云BGP数据中心

    120.52.72.47:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.48:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.52:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.53:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.54:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.55:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.56:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.57:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.58:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.59:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.66:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.67:80@HTTP#北京市 联通云BGP数据中心

    120.52.72.68:80@HTTP#北京市 联通云BGP数据中心

    120.194.18.90:81@HTTP#河南省郑州市 移动

    151.80.197.192:80@HTTP#【匿】意大利

    159.226.168.11:80@HTTP#[C]中国 科学院网

    159.226.234.36:80@HTTP#北京市 科技网

    159.255.163.178:80@HTTP#伊拉克

    159.255.165.25:8080@HTTP#伊拉克

    159.255.165.234:8080@HTTP#伊拉克

    159.255.167.147:8080@HTTP#伊拉克

    166.111.80.162:3128@HTTP#[C]北京市 清华大学软件学院

    166.111.132.97:8888@HTTP#[C]清华大学学生宿舍

    166.111.132.167:8080@HTTP#[C]清华大学学生宿舍

    175.103.47.130:6666@HTTP#印度尼西亚

    176.31.125.111:80@HTTP#法国

    178.32.218.91:80@HTTP#波兰 OVH SAS

    178.60.28.98:9999@HTTP#西班牙

    178.169.64.76:8081@HTTP#俄罗斯

    178.214.74.27:8080@HTTP#巴勒斯坦

    178.255.175.222:8080@HTTP#捷克

    180.250.150.73:8080@HTTP#印度尼西亚

    183.247.152.98:53281@HTTP#浙江省杭州市 移动

    185.19.176.237:53281@HTTP#瑞典

    187.44.1.167:8080@HTTP#巴西

    187.125.23.26:8080@HTTP#巴西

    188.138.195.178:8080@HTTP#摩尔多瓦

    190.122.186.214:8080@HTTP#危地马拉

    190.122.186.217:8080@HTTP#危地马拉

    190.122.186.223:8080@HTTP#危地马拉

    190.248.153.162:8080@HTTP#哥伦比亚

    192.99.160.45:8080@HTTP#加拿大 魁北克省蒙特利尔市OVH数据中心

    195.154.207.153:80@HTTP#法国 ONLINE S.A.S.数据中心

    196.22.249.124:80@HTTP#【匿】南非

    197.210.246.30:8080@HTTP#尼日利亚

    197.232.36.43:8080@HTTP#肯尼亚

    200.85.123.154:53281@HTTP#阿根廷

    201.22.95.10:8080@HTTP#巴西 圣保罗

    202.69.38.82:8080@HTTP#巴基斯坦

    202.142.158.114:8080@HTTP#巴基斯坦

    202.152.40.28:8080@HTTP#印度尼西亚

    202.183.32.173:80@HTTP#【匿】菲律宾

    202.183.32.181:80@HTTP#【匿】菲律宾

    202.183.32.182:80@HTTP#【匿】菲律宾

    202.183.32.185:80@HTTP#菲律宾

    202.183.32.200:80@HTTP#菲律宾

    203.83.182.86:8080@HTTP#孟加拉

    203.189.142.74:8080@HTTP#柬埔寨

    212.98.159.194:8080@HTTP#黎巴嫩

    212.200.246.24:80@HTTP#【匿】塞尔维亚和黑山 塞尔维亚电信

    展开全文
  • 代理服务器

    千次阅读 2019-06-17 10:25:23
    Web 代理服务器是网络的中间实体。代理位于客户端和服务器之间,在各端点之间来回传送HTTP 报文。 HTTP 的代理服务器即是Web 服务器又是Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器...
    • Web 代理服务器是网络的中间实体。代理位于客户端和服务器之间,在各端点之间来回传送HTTP 报文。
    • HTTP 的代理服务器即是Web 服务器又是Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器一样,正确的处理请求与连接,然后返回响应。同时,代理自身向服务器发送请求,这样,其行为就必须像正确的HTTP 客户端一样,要发送请求并接收响应。如果要创建自己的HTTP代理,就要认真地遵循为HTTP 客户端和HTTP 服务器制定的规则。
    • 公共代理:大多数代理都是公共的共享代理。集中式代理更容易管理。某些代理应用,比如高速缓存代理服务器,会利用用户间共同的请求,这样的话,汇入同一个代理服务器的用户越多,它就越有用。
    • 私有代理:专用的私有代理并不常见,但他们确实存在,尤其是直接运行在客户端计算机上的时候,有些浏览器辅助产品,以及一些ISP服务,会在用户的PC 上直接运行一些小型的代理。
    代理与网关的对比
    • 严格来说,代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。
    • 网关扮演的是 “ 协议转换器 ” 的角色,即使客户端和服务器使用的是不同的协议,客户端也可以通过它完成与服务器之间的事务处理。

    为什么使用代理

    • 代理服务器可以实现各种有用的功能。他们可以改善安全性,提高性能,节省费用。代理服务器可以看到并接触到所有流过的HTTP 流量,所以代理可以监视流量并对其修改,以实现很多有用的增值Web 服务。
    • 儿童过滤器:可以利用过滤代理来阻止学生访问成人内容。代理应该允许学生无限制地访问教育性内容,但对不适合儿童的站点要强行禁止访问。
    • 文档访问控制:可以用代理服务器在大量Web 服务器和Web 资源之间实现统一的访问控制策略,创建审核跟踪机制。比如:允许客户端1无限制的访问服务器A的页面,但要求客户端2访问的时候输入口令。为了防止一些经验丰富的用户蓄意绕过控制代理,可以静态地配置Web 服务器,使其仅接受来自代理服务器的请求。
    • 反向代理:代理可以假扮Web 服务器。这些被称为替代物或者反向代理的代理接收发给Web 服务器的真实请求,但与Web 服务器不同的是,他们可以发起与其他服务器的通行,以便按需定位所请求的内容。可以用这些反向代理来提高访问慢速Web 服务器上公共内容时的性能。在这种配置中,通常将这些反向代理称为服务器加速器。还可以将替代物与内容路由功能配合使用,以创建按需复制内容的分布式网络。
    • 内容路由器:代理服务器可以作为 “ 内容路由器 ” 使用,根据因特网流量状况以及内容类型将请求导向特定的Web 服务器。内容服务器可以用来实现各种服务级的请求。比如:如果用户或内容提供者付费要求提供更高的性能,内容路由器可以将请求转发到附近的复制缓存,或者如果用户申请了过滤服务,还可以通过过滤代理来转发HTTP请求。可以用自适应内容路由代理来构建很多有趣的服务。
    • 转码器:代理服务器在将内容发送给客户端之前,可以修改内容的主体格式。在这些数据表示法之间进行的透明转换被称为转码。转码代理可以在传输GIF 图片时,将其转换成JPEG 图片,以减少尺寸。也可以对图片进行压缩,或降低颜色的色彩饱和度以便在电视上观看。
    • 匿名者代理:会主动从HTTP 报文中删除身份特性(比如客户端IP地址、From 首部、Referer首部、cookie、URI 的会话ID),从而提高高度的私密性和匿名性。
      • 匿名代理会对用户报文进行下列修改以增加私密性
      • 从User-Agent 首部删除用户的计算机与OS 类型
      • 删除From 首部以保护用户的E-mail 地址
      • 删除Referer 首部来掩盖用户访问过的其他站点
      • 删除Cookie 首部以剔除概要信息和身份的数据

    代理服务器的部署

    • 出口代理:将代理固定在本地网络的出口点,以便控制本地网络与大型因特网之间的流量。可以在公司网络中使用出口代理,提供针对公司外部恶意黑客的防火墙保护,或降低带宽费用,提高因特网流量的性能。
    • 访问(入口)代理:代理被放在ISP 访问点上,用以处理来自客户的聚合请求。ISP 使用缓存代理来存储常用文档的副本,以提高用户(尤其是高速连接用户)的下载速度,降低因特网带宽耗费。
    • 反向代理:代理通常被部署在网络边缘,在Web 服务器之前,作为替代物使用,在哪里他们可以处理所有传送给Web 服务器的请求,并只在必要时向Web 服务器请求资源。替代物可以提高Web 服务器的安全特性,或者将快速的Web 服务器缓存放在较慢的服务器之前,以提高性能。反向代理通常会直接冒用Web 服务器的名字和IP 地址,这样所有的请求就会被发送给代理而不是服务器了。
    • 网络交换代理:可以将具有足够能力的代理放在网络之间的因特网对等交换点上,通过缓存来减轻因特网节点的拥塞,并对流量进行监视。
    代理层次结构的内容路由
    • 层次不一定非得是静态的,代理服务器可以根据众多因素,将报文转发给一个不断变化的代理服务器和原始服务器集。
    • 如果请求的对象属于一个付费试用内容分发服务的Web 服务器,代理就会将请求发送给附近的一个缓存服务器,这个服务器会返回已缓存对象,或者如果它哪儿没有的话,它会去取回内容
    • 如果请求的是特定类型的图片,访问代理会将请求转发给一个特定的压缩代理,这个代理会获取图片,然后对其进行压缩,这样通过到客户端的慢速下载时,速度会更快一些。
    代理是如何获取流量的
    • 修改客户端:很多Web 客户端,都支持手工和自动的代理配置。如果将客户端配置为使用代理服务器,客户端就会将HTTP 请求有意地直接发送给代理,而不是原始服务器。
    • 修改网络:网络基础设施可以通过若干种技术手段,在客户端不知道,或没有参与的情况下,拦截网络流量并将其导入代理。这种拦截通常依赖于监视HTTP 流量的交换设备及路由设备,在客户端毫不知情的情况下,对其进行拦截,并将流量导入一个代理。这种代理被称为拦截代理。
    • 修改DNS 的命名空间:放在DNS 服务器之前的代理服务器----替代物,会直接假扮Web 服务器的名字和IP地址,这样,所有的请求就会发送给这些替代物,而不是服务器了。要实现这一点,可以手工编辑DNS 名称列表,或者用特殊的动态DNS 服务器根据需要来确定适当的代理或服务器。有时在安装过程中,真实服务器的IP地址和名称被修改了,替代物得到的会是之前的地址和名称。
    • 修改Web 服务器:也可以将某些Web 服务器配置为向客户端发送一条HTTP 重定向命令(响应吗305),将客户端请求重定向到一个代理上去。收到重定向命令后,客户端会与代理进行通信。
    代理URI 和服务器URI 的不同
    • Web 服务器报文和Web 代理报文的语法是一样的。客户端向服务器而不是代理发送请求时,HTTP 请求报文中的URI 会有所不同。
    • 客户端向Web 服务器发送请求时,请求行只包含部分URI(没有方案、主机和端口)。但当客户端向代理发送请求时,请求行中则包含完整的URI。在原始的HTTP 设计中,客户端会直接与单个服务器进行对话。不存在虚拟主机,也没有为代理制定规则。单个的服务器都知道自己的主机名和端口,所以为了避免发送过多信息,客户端只需发送部分的URI 即可,无需发送方案和主机。
    • 代理出现之后,使用部分的URI 就有问题了。代理需要知道目标服务器的名称,这样他们才能建立自己与服务器的连接。基于代理的网关要知道URI 的方案才能连接到FTP 资源和其他方案上去。
    • 没有设置客户端使用代理时,它会发送部分URI
    • 设置客户端使用代理时,它会发送完整URI
    展开全文
  • java扫描免费代理服务器

    万次阅读 2017-09-22 13:51:20
    免费代理服务器的收集与使用(java版) >在学习中,由于需要频繁抓取一些网站的数据,而且保证数据的实时性,有效性,就需要多次访问服务器。 这样的话就会增加服务器的负荷。所以网站管理员采取技术手段,对一定时间...

    免费代理服务器的收集与使用(java版)



    一、前言:

    >概念:

    代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)

    通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备

    具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

    >功能:
    1 突破自生IP访问限制。
    2 网络用户可以通过代理访问外国网站。
    3 访问一些单位或团体内部资源。
    4 突破中国电信的IP封锁。
    5 提高访问速度
    6 隐藏真实IP。有防火墙的功能。

    二、介绍:

    >>在学习中,由于需要频繁抓取一些网站的数据,而且保证数据的实时性,有效性,就需要多次访问服务器。
    这样的话就会增加服务器的负荷。所以网站管理员采取技术手段,对一定时间进行频繁访问的ip地址封锁处理。
    以此时就需要大量的代理服务器交替使用IP地址。去帮助你探索数据。

    >>文中所用到的代理服务器并不是从网络中扫描得到,而是在http://www.xicidaili.com/nn/这个网站中提取而来,
    因为如果要是自己扫描的话,得需要很多高性能的服务器和别的技术手段.之前在无忧代理那个网站试过,但是提取
    出来的IP地址是对的,端口号是错误的,我估计是在请求的文档加载完成以后采用异步js或者Ajax更新了端口,所以
    我放弃了,此处只为学习,故提取现成的事半功陪。

    >>由于只是为了验证与学习,文章中代码比较乱,下文中的程序属于半成品,但是为了更好理解,我在此说明
    我的编程思路。如果我实在没说明白,就当玩玩而已^_^

    文中有两个主方法,其实就是两个小程序,一个是StartIPSet,这个主要是把提取出来的数据放置在数据库中,
    以便用到的时候直接在数据库中进行查取,里面有个方法update(),用来更新数据库中的数据,不是自动更新。第二
    个主方法是TestProxy,主要功能是测试和验证有用的代理IP。还有一些辅助的类,比如DownloadHtml(用于从西刺代
    理这个网站下载网页文档),还有GetCookie(这个类可有可无,主要是在12306网站中要想获取数据的话就必须用到
    cookies,在此贴出来,只为学习)。       

    三、代码:

    StartIPSet:
    package pitd;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import org.htmlcleaner.HtmlCleaner;
    import org.htmlcleaner.TagNode;
    
    import dao.DBUtil;
    
    public class StartIPSet {
    	public static void main(String[] args) {
    		StartIPSet s=new StartIPSet();
    		s.update();
    	}
    	public void put() {
    		String sql = "insert into proxyip values(?,?,?,?,?,sysdate)";
    		Connection con = null;
    		PreparedStatement ps = null;
    		try {
    			/*
    			 * fw = new FileWriter(
    			 * "C:\\Users\\Administrator\\Desktop\\proxyIP.txt");
    			 */
    			// out=new BufferedWriter(new
    			// FileWriter("C:\\Users\\Administrator\\Desktop\\proxyIP.txt"));
    			HtmlCleaner cleaner = new HtmlCleaner();
    			TagNode tagNode = cleaner.clean(DownloadHtml.getHtml());
    			Object[] action = tagNode.getElementsByName("td", true);
    			System.out.println(action.length);
    			con = DBUtil.getConnection();
    			con.setAutoCommit(false);
    			ps = con.prepareStatement(sql);
    			for (int i = 1; i < action.length - 6;) {
    				for (int j = 1; j <= 5; j++) {
    					TagNode tna = (TagNode) action[i];
    					ps.setString(j, tna.getText().toString());
    					i++;
    				}
    				i = i + 5;
    				ps.addBatch();
    			}
    			ps.executeBatch();
    			con.commit();
    			con.setAutoCommit(true);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.closePreparedStatement(ps);
    			DBUtil.closeConnection(con);
    		}
    	}
    	public void update(){
    		String sql="truncate table proxyip";
    		Connection con=null;
    		Statement st=null;
    		try {
    			con=DBUtil.getConnection();
    			st=con.createStatement();
    			st.execute(sql);
    		} catch (ClassNotFoundException | SQLException e) {
    			e.printStackTrace();
    		}finally{
    			DBUtil.closeStatement(st);
    			DBUtil.closeConnection(con);
    		}
    		put();
    	}
    }
    

    GetCookie:
    package pitd;
    
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    
    
    
    
    public class GetCookie {
        
    	public static String getCookie(String url){
    		HttpURLConnection conn=null;
    	    String cookie=null;
    	    StringBuffer result=new StringBuffer();
    		try {
    			URL u=new URL(url);
    		   conn = (HttpURLConnection)u.openConnection();  
    		   conn.setRequestMethod("GET");
    		   conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
    			//conn.setRequestProperty("Accept-Encoding", "gzip, deflate, sdch");   //kongzhi bainma
    			conn.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    			conn.setInstanceFollowRedirects(false); 
    			System.out.println(conn.getResponseCode());
    			String cookieskey = "Set-Cookie";  
    			cookie = conn.getHeaderField(cookieskey);
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			URL u=new URL(url);
    		   conn = (HttpURLConnection)u.openConnection();  
    		   conn.setRequestMethod("GET");
    		   conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
    			//conn.setRequestProperty("Accept-Encoding", "gzip, deflate, sdch");   //kongzhi bainma
    			conn.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    			conn.setInstanceFollowRedirects(false); 
    			conn.setRequestProperty("Cookie", cookie);
    			conn.connect();
    			System.out.println(conn.getResponseCode());
    			String cookieskey = "Set-Cookie";  
    			String cookie2 = conn.getHeaderField(cookieskey);
    			result.append(cookie+";"+cookie2);
    			
    			System.out.println(result.toString());
    			
    		} catch (MalformedURLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return result.toString();
    	}
    }
    

    DownloadHtml:

    package pitd;
    
    import java.io.BufferedReader;
    import java.io.FileWriter;
    
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    
    public class DownloadHtml {
    	public static String getHtml() {
    		URL url;
    		StringBuffer contentBuffer = new StringBuffer();
    		FileWriter fw;
    		String htmlstr=null;
    		HttpURLConnection conn=null;
    		try {
    			fw = new FileWriter(
    					"C:\\Users\\Administrator\\Desktop\\crawler.txt");
    			String urlPath="http://www.xicidaili.com/nn/";
    			url = new URL(urlPath);
    			
    			conn = (HttpURLConnection)url.openConnection();  
    			conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
    			//conn.setRequestProperty("Accept-Encoding", "gzip, deflate, sdch");   //kongzhi bainma
    			
    			conn.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    			conn.setInstanceFollowRedirects(true); 
    		    conn.setRequestProperty("Connection", "keep-alive");	
    			conn.setRequestProperty("Upgrade-Insecure-Requests", "1"); 
    			conn.setRequestProperty("Cookie",GetCookie.getCookie(urlPath));
    			conn.connect();
    			int returnCode = conn.getResponseCode();
    			if (returnCode == 200) {
    				InputStream input = conn.getInputStream();
    
    				InputStreamReader istreamReader = new InputStreamReader(
    						input, "UTF-8");
    				
    				BufferedReader buffStr = new BufferedReader(istreamReader);
    
    				String str = null;
    				while ((str = buffStr.readLine()) != null)
    					contentBuffer.append(str);
    				htmlstr = contentBuffer.toString();
    				System.out.println(htmlstr);
    				fw.write(htmlstr);
    				input.close();
    				istreamReader.close();
    				buffStr.close();
    				fw.close();
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			
    		}  finally {
    			if (conn != null) {
    				conn.disconnect();
    			}
    		}
    		return htmlstr;
    	}
    }
    

    TestProxy:

    package proxyip;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.InetSocketAddress;
    import java.net.MalformedURLException;
    import java.net.Proxy;
    import java.net.URL;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import pitd.GetCookie;
    import dao.DBUtil;
    
    public class TestProxy {
    	static Proxy proxy = null;
    	Connection con = null;
    	Statement st = null;
    	ResultSet rs = null;
    
    	public static void main(String[] args) throws IOException {
    		try {
    			@SuppressWarnings("unchecked")
    			// 使用反射加载类。
    			Class<TestProxy> clazz = (Class<TestProxy>) Class
    					.forName("proxyip.TestProxy");
    			TestProxy tp = clazz.newInstance();
    			tp.checkProxy();
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (InstantiationException e) {
    			e.printStackTrace();
    		} catch (IllegalAccessException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public void checkProxy() {
    		int count = 100;
    		try {
    			String sql = "select * from proxyip";
    			con = DBUtil.getConnection();
    			st = con.createStatement();
    			rs = st.executeQuery(sql);
    			do {
    				rs.next();count--;
    				System.out.print("数据库中取出的数据为:");
    				System.out.println(rs.getString(1) + "\t"
    						+ new Integer(rs.getString(2)));
    				proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
    						rs.getString(1), new Integer(rs.getString(2))));
    				// 确定代理是否设置成功
    				if (statuOk()) {
    					System.out.println("<<<<----代理成功————>>>>\n代理信息:");
    					System.out.println("Address:" + rs.getString(1) + "\nPort:"
    							+ rs.getString(2) + "\nLocaltion:" + rs.getString("LOCALTION")
    							+ "\nAnony:" + rs.getString(4) + "\nProtocal:"
    							+ rs.getString(5));
    					break;
    				} else if (count <= 0) {
    					System.out.println("代理失败,ip资源不足!");
    					break;
    				}
    			} while (true);
    		} catch (ClassNotFoundException | SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.closeResultSet(rs);
    			DBUtil.closeStatement(st);
    			DBUtil.closeConnection(con);
    		}
    	}
    
    	public boolean statuOk() {
    		int flag = 0;
    		String localIP = getV4IP();
    		System.out.println("start...");
    		try {
    			String ipInfo = getHtml("http://ip.chinaz.com/getip.aspx");// http://city.ip138.com/ip2city.asp
    			Pattern p = Pattern
    					.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
    			Matcher m = p.matcher(ipInfo);
    			if (m.find()) {
    				String proxyIP = m.group(0);
    				System.out.println("正在检测的代理ip:" + proxyIP);
    				if (!localIP.equals(proxyIP)) {
    					System.out.println("本机ip:" + localIP);
    					flag = 1;
    				}
    			}
    
    		} catch (Exception e) {
    			System.out.println(e.getMessage());
    			flag = 0;
    		}
    		if (flag == 1) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    	private static String getHtml(String address) throws Exception {
    		StringBuffer html = new StringBuffer();
    		String result = null;
    		/*
    		 * System.getProperties().setProperty("proxySet", "true"); //
    		 * 如果不设置,只要代理IP和代理端口正确,此项不设置也可以 String ip = "218.56.132.158";
    		 * 
    		 * System.getProperties().setProperty("http.proxyHost",
    		 * "202.124.205.26");
    		 * System.getProperties().setProperty("http.proxyPort", "3128");
    		 */
    		URL url = new URL(address);
    		HttpURLConnection con = (HttpURLConnection) url.openConnection(proxy);
    		con.setConnectTimeout(5000);
    		con.setDoInput(true);
    		con.setRequestMethod("GET");
    
    		// conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
    		BufferedInputStream in = new BufferedInputStream(con.getInputStream());
    
    		String inputLine;
    		byte[] buf = new byte[4096];
    		int bytesRead = 0;
    		while (bytesRead >= 0) {
    			inputLine = new String(buf, 0, bytesRead, "ISO-8859-1");
    			html.append(inputLine);
    			bytesRead = in.read(buf);
    			inputLine = null;
    		}
    		buf = null;
    
    		in.close();
    		con = null;
    		url = null;
    
    		result = new String(html.toString().trim().getBytes("ISO-8859-1"),
    				"gb2312").toLowerCase();
    
    		return result;
    	}
    
    	public String getV4IP() {
    		String ip = "";
    		String chinaz = "http://ip.chinaz.com/getip.aspx";
    
    		StringBuilder inputLine = new StringBuilder();
    		String read = "";
    		URL url = null;
    		HttpURLConnection urlConnection = null;
    		BufferedReader in = null;
    		try {
    			url = new URL(chinaz);
    			urlConnection = (HttpURLConnection) url.openConnection();
    			urlConnection
    					.setRequestProperty(
    							"User-Agent",
    							"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36");
    			// conn.setRequestProperty("Accept-Encoding",
    			// "gzip, deflate, sdch"); //kongzhi bainma
    
    			urlConnection
    					.setRequestProperty("Accept",
    							"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    			urlConnection.setInstanceFollowRedirects(true);
    			urlConnection.setRequestProperty("Connection", "keep-alive");
    			urlConnection.setRequestProperty("Upgrade-Insecure-Requests", "1");
    			urlConnection.connect();
    			if (urlConnection.getResponseCode() == 200) {
    				in = new BufferedReader(new InputStreamReader(
    						urlConnection.getInputStream(), "UTF-8"));
    				while ((read = in.readLine()) != null) {
    					inputLine.append(read);
    				}
    			}
    			// System.out.println(inputLine.toString());
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (in != null) {
    				try {
    					in.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    		// "\\<dd class\\=\"fz24\">(.*?)\\<\\/dd>"
    		Pattern p = Pattern
    				.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
    		Matcher m = p.matcher(inputLine.toString());
    		if (m.find()) {
    			String ipstr = m.group(0);
    			ip = ipstr;
    		}
    		return ip;
    	}
    }
    



    四、截图:

    访问并下载网页,用HtmlCleaner进行解析后将数据放置数据库中,共1000个节点,大概100条记录。


    提取的数据和原网页的数据:


    采用循环检测代理IP,当一个不能使用的时候,自动提取下一条再进行测试,代理成功以后跳出循环,或者IP资源不足的时候跳出循环。





    联系邮箱:xhsgg12302@outlook.com

                                                                                                                                                                                                                                                                                                                                                                    2017_09_22



    展开全文
  • 代理服务器与反向代理服务器

    说到代理服务器,大部分人都应该比较熟悉了。记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站。但是提到反向代理服务器可能大部分人就比较陌生,对于一般的代理服务器与反向代理服务器的区别估计也不是那么清楚。

    因工作需要就研究了一下,搞清了是怎么回事,这里做个笔记,也为大家所共享。

    代理服务器通常分为两类,即转发代理(forward proxy)服务器和反向代理(reverse proxy)服务器。转发代理服务器又通常简称为代理服务器,我们常提到的代理服务器就指的是转发代理服务器。

    转发代理服务器

    普通的转发代理服务器是客户端与原始服务器之间的一个中间服务器。为了从原始服务器获取内容,客户端发送请求到代理服务器,然后代理服务器从原始服务器中获取内容再返回给客户端。客户端必须专门地配置转发代理来访问其他站点,如在浏览器中配置代理服务器地址及端口号等。

    转发代理服务器的一个典型应用就是为处于防火墙后的内部客户端提供访问外部Internet网,比如校园网用户通过代理访问国外网站,公司内网用户通过公司的统一代理访问外部Internet网站等。转发代理服务器也能够使用缓存来缓解原始服务器负载,提供响应速度。

    反向代理服务器

    而反向代理服务器则相反,在客户端来看它就像一个普通的Web服务器。客户端不要做任何特殊的配置。客户端发送普通的请求来获取反向代理所属空间的内容。反向代理决定将这些请求发往何处,然后就好像它本身就是原始服务器一样将请求内容返回。

    反向代理服务器的一个典型应用就是为处于防火墙后的服务器提供外部Internet用户的访问。反向代理能够用于在多个后端服务器提供负载均衡,或者为较慢的后端服务器提供缓存。此外,反向代理还能够简单地将多个服务器映射到同一个URL空间。

    两者区别

    两者的相同点在于都是用户和服务器之间的中介,完成用户请求和结果的转发。主要的不同在于:

    (1)转发代理的内部是客户端,而反向代理的内部是服务器。即内网的客户端通过转发代理服务器访问外部网络,而外部的用户通过反向代理访问内部的服务器。

    (2)转发代理通常接受客户端发送的任何请求,而反向代理通常只接受到指定服务器的请求。如校园网内部用户可以通过转发代理访问国外的任何站点(如果不加限制的话),而只有特定的请求才发往反向代理,然后又反向代理发往内部服务器。

    版权所有: 非特殊声明,均为本网站原创文章,转载请指明出处: 企业网D1net

    所谓的反向代理就是指代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个Web服务器,但是此服务器上不存在任何资源,用户所请求的数据全部在内部网络中,因此如果受到被人的攻击,直接攻向的目标是反向代理服务器,内网数据不会直接受到破坏。
    反向代理服务器一个很好的应用是CDN(Content Delivery Network),即就是内容分发网络。基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,有效解决网络拥挤的状况,提高用户访问网站的响应速度。

    反向代理(Reverse Proxy)
    是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
    当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

    展开全文
  • 代理服务器和反向代理服务器详解

    千次阅读 多人点赞 2018-07-24 12:11:54
    通常我们所说的代理,都是指的客户端向外界发起请求时,并不是直接与目标服务器连接,而是经过一个代理服务器,将所有请求交给代理服务器,由它去负责连接外界的目标服务器,同时从服务器返回的数据,也经过代理...
  • 一些免费代理服务器分享

    千次阅读 2021-03-22 14:26:49
    为了使用代理服务器,您首先...第三方平台提供的免费代理服务器列表已经很多了。但是,在这个列表中有太多的代理服务器地址,您需要逐个评估才能得到足够快的代理服务器地址。虽然这份清单已经按照国家/地区进行了分类
  • 国外代理服务器免费的吗?

    千次阅读 2021-04-02 17:10:52
    现在免费的ip代理服务器也越来越流行了,那么为什么我们不去使用免费的ip代理服务器呢?首先,爬虫需要大量的IP,而免费IP代理服务器提供的IP质量未必能满足所有要求。 ip替换数据挖掘过程本身非常复杂。在代理...
  • Squid代理服务器

    千次阅读 2019-08-11 09:31:20
    一、Squid代理服务器概念 二、Squid代理的作用 三、Squid的工作流程 四、Squid主要组成部分 五、Squid各种代理的定义 1、正向代理 2、反向代理 六、Squid调度器的实现(负载均衡) 一、squid代理服务器概念 ...
  • 免费http代理服务器ip地址和端口

    万次阅读 2021-03-08 16:04:02
    当前,在网络上有很多关于HTTP代理和SOCKS代理的讨论,这些都是基础的http代理服务器ip地址,下面我们来详细介绍一下HTTP代理和SOCKS代理的使用技巧,以及分享一些http代理服务器ip地址,感兴趣的小伙伴不妨来看下哦...
  • 转发代理服务器与反向代理服务器

    千次阅读 2007-10-02 16:34:00
    转发代理服务器与反向代理服务器 说到代理服务器,大部分人都应该比较熟悉了。记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站。但是提到反向代理服务器可能大部分人就比较陌生,...
  • 虽然接触互联网的朋友经常使用代理服务器,但许多人可能不知道端口,不同的代理使用不同的端口。有时,当我们设置代理时,无法连接,也可能是由于端口设置错误。与IPIDEA全球HTTP去了解下代理服务器通常用哪些端口,...
  •  ------爬虫I号:获取免费代理服务器&amp;自动验证 需求:  获取西刺代理网站http://www.xicidaili.com/wn/的免费代理IP资源,自动验证其有效性,  不要问我为什么要用代理,有需求的自然明白。 知识点: ...
  • 免费网页HTTP代理服务器哪个好用?

    千次阅读 2021-02-24 13:37:17
    代理服务器哪个比较好用?这个问题是非常好的,现在的代理服务器也是很多的,有好的有不好的,代理服务器的好不好要看它的性能怎么样,包括服务器的流畅度还有ip地址数等等。下面简单来给大家介绍要哪种比较好用的...
  • HTTP代理服务器

    万次阅读 2019-06-14 21:40:16
    代理服务器实现流程 创建一个监听服务器,监听客户端的连接。 客户端连接上后,将客户端要上网的信息,发给网络web服务器, 然后从那里读取数据,再发给客户端。 注:客户端是通过浏览器的设置,来设置我的地址...
  • 全栈工程师开发手册 (作者:栾鹏) python教程全解 在使用python爬取网络数据时,网络需要设置代理服务器,防止目标网站对IP的限制。...网站实现了众多可以使用的...#本实例用于获取国内高匿免费代理服务器 import ur
  • 免费ie代理服务器怎么设置?

    千次阅读 2021-04-02 17:07:09
    (二)选“连接”,单击“设置(S)…”在“代理服务器”组,把“对此连接使用代理服务器”打钩,然后填上HTTP的地址和端口。(如果你不是拨号用户!是局域网用户那么请看第四步) 如果是S5代理 在下面填入帐号(用户名...
  • 2、把连接中的局域网设置中的代理服务器关掉。 原因分析       昨天下载了一个软件,不太懂原理,应该是那个软件导致的把这个设置给改变了。 以上就是代理服务器拒绝连接的解决办法...
  • 代理服务器搭建

    万次阅读 2019-12-20 14:40:51
    今天总结一个非常简单的搭建代理服务器的方法。 下面是思维导图 服务器C只能被B服务器访问,如果a要访问的话就必须通过B进行代理。 首先在云平台上面有台服务器B linux系统就好 账号密码并确保可以ssh远程连接...
  • 什么是反向代理服务器? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理...
  • Linux服务器配置代理服务器

    千次阅读 2016-04-14 11:14:20
    apt-get代理服务器设置,命令行http, https, ftp代理服务器设置
  • 代理服务器基本知识

    万次阅读 多人点赞 2018-01-12 17:21:21
    代理服务器系列(一):基础知识 2005 年 9 月 10 日 世界网络教研组 编 一、什么是代理服务器代理服务器英文全称是 Proxy Server,其功能就是代理网络用户去取得网络信息。 形象的说:它是网络信息的中转站...
  • HTTP 代理服务器源码

    千次下载 热门讨论 2008-11-05 00:59:53
    代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)型的对话层,主要的功能是突破自身IP访问限制VC实现HTTP代理服务器,本程序是简单实现HTTP代理服务器的源码
  • java实现代理服务器

    万次阅读 2017-03-14 01:23:36
    前束本篇博客没有给出一个完善的技术解决方案,使用java搭建代理服务器是处理本人想要实现主备切换的broker而产生的想法,由于能力,时间和精力的限制,目前只能将想法的大致内容实践一下,这里只是分享一些这两天在...
  • 反向代理服务器

    千次阅读 2011-06-30 10:50:00
    反向代理及Nginx示例1 反向代理的概念反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端...
  • 免费游戏代理服务器ip地址分享

    千次阅读 2021-03-09 14:07:43
    众所周知,目前国内爬虫类的代理IP服务提供商多如牛毛,但海外IP资源相关的代理店很少,国内很难找到优质的海外代理IP服务,收费的服务也很少。今天LumProxy将与您分享一些高质量的ip地址。 代理ip地址: 114.113....
  • 选择一个nginx作为一个代理服务器;反向代理到apache 服务器上 (都是从阿里云买的服务器) 具体操作 如图所示 不需要添加根目录文件 也就是没有了 root 而 apache 服务器的配置无需改动 ,执行效果如下 ...
  • 浏览器中的代理服务器设置 Windows系统接口提供的代理服务器设置是一个全局的代理服务器的设置,如图所示,这里就不多解释: 各个浏览器在使用代理设置的时候,可以主动地获取代理设置亦或是不使用该代理设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 643,386
精华内容 257,354
关键字:

代理服务器免费