import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; import java.net.ProxySelector; import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Properties; public class NetProxy { // 测试本地JVM的网络缺省配置 public void setLocalProxy() { Properties prop = System.getProperties(); //设置http访问要使用的代理服务器的地址 prop.setProperty("http.proxyHost", "10.10.0.96"); //设置http访问要使用的代理服务器的端口 prop.setProperty("http.proxyPort", "8080"); //设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔 prop.setProperty("http.nonProxyHosts", "localhost|10.10.*"); //设置安全访问使用的代理服务器地址与端口 //它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问 prop.setProperty("https.proxyHost", "10.10.0.96"); prop.setProperty("https.proxyPort", "443"); //使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机 prop.setProperty("ftp.proxyHost", "10.10.0.96"); prop.setProperty("ftp.proxyPort", "2121"); prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*"); //socks代理服务器的地址与端口 prop.setProperty("socksProxyHost", "10.10.0.96"); prop.setProperty("socksProxyPort", "1080"); } // 清除proxy设置 public void removeLocalProxy() { Properties prop = System.getProperties(); prop.remove("http.proxyHost"); prop.remove("http.proxyPort"); prop.remove("http.nonProxyHosts"); prop.remove("https.proxyHost"); prop.remove("https.proxyPort"); prop.remove("ftp.proxyHost"); prop.remove("ftp.proxyPort"); prop.remove("ftp.nonProxyHosts"); prop.remove("socksProxyHost"); prop.remove("socksProxyPort"); } // // 测试http public void showHttpProxy(Object... proxy) { URL url = null; try { url = new URL("http://blog.csdn.com/smallnest"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 测试ftp public void showFtpProxy(Object... proxy) { URL url = null; try { url = new URL("ftp://ftp.tsinghua.edu.cn"); } catch (MalformedURLException e) { return; } try { URLConnection conn = null; switch (proxy.length) { case 0: conn = url.openConnection(); break; case 1: conn = url.openConnection((Proxy) proxy[0]); break; default: break; } if (conn == null) return; conn.setConnectTimeout(3000); // 设置连接超时时间 InputStream in = conn.getInputStream(); byte[] b = new byte[1024]; try { while (in.read(b) > 0) { System.out.println(new String(b)); } } catch (IOException e1) { } } catch (IOException e1) { e1.printStackTrace(); } } // 得到一个proxy public Proxy getProxy(Proxy.Type type, String host, int port) { SocketAddress addr = new InetSocketAddress(host,port); Proxy typeProxy = new Proxy(type, addr); return typeProxy; } public static void main(String[] args) { NetProxy proxy = new NetProxy(); //测试代理服务器 proxy.setLocalProxy(); proxy.showHttpProxy(); //下面两行是清除系统属性,而通过Proxy类指定代理服务器 // proxy.removeLocalProxy //proxy.showHttpProxy(proxy.getProxy(Proxy.Type.SOCKS,"10.10.0.96",1080)); } }
相关推荐
在IT行业中,HTTP代理是一种网络通信机制,它允许客户端(如Web浏览器)通过另一台服务器作为中介来访问互联网上的资源。这种技术常用于提高匿名性、优化网络性能或绕过特定的网络限制。本篇文章将深入探讨如何使用...
### HTTP代理穿透方法详解 #### 一、引言 HTTP代理穿透是指客户端通过HTTP代理服务器访问互联网资源的技术手段。在很多场景下,由于网络安全策略或技术限制,客户端不能直接访问某些资源,这时就需要借助HTTP代理...
设计并实现一个基本 HTTP 代理服务器。要求在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址所指向的 HTTP 服务器(原服务器),接收 HTTP 服务器的响应报文,并将响应报文转发给...
【Visual C#实现HTTP代理服务程序】 HTTP代理服务程序是一种在网络中起到中转作用的软件,允许客户端(如浏览器)通过代理服务器访问互联网上的资源。HTTP代理服务是针对HTTP协议设计的,它工作在TCP/IP参考模型的...
"商道HTTP代理IP验证工具"就是针对这一需求设计的一款实用软件,它专为批量验证HTTP代理IP的可用性而生。下面,我们将详细探讨这款工具的功能、工作原理以及其在实际使用中的价值。 首先,我们要理解什么是代理IP。...
HTTP代理服务器在Windows环境下主要起到中介的作用,允许客户端(如Web浏览器)通过它与外部互联网进行通信。这种设置有助于提高网络性能、实现访问控制、监控网络活动以及在多用户环境中节省公网IP地址。本文将详细...
HTTP代理IP检测高达,哇咔咔。安全无毒。
Java编写的HTTP代理是一种软件应用,它允许用户通过Java程序作为中介来访问互联网,从而实现对HTTP请求的转发。这种代理服务器通常用于多种用途,包括网络匿名性、内容过滤、性能优化以及网络测试等。在Java中实现...
标题 "完全自助开发的HTTP代理程序" 描述了一个项目,该项目是作者独立完成的,旨在理解和实现HTTP代理服务器的工作原理。这个程序能够处理HTTP协议的数据解包与打包,包括对chunked编码的处理,这对于理解HTTP协议...
本文将深入探讨C#实现的HTTP代理源码,特别关注其支持MSN和QQ代理上网的功能。 首先,我们需要理解HTTP代理的基本概念。HTTP代理是一种服务器,它充当客户端与目标Web服务器之间的桥梁。客户端通过HTTP代理发送请求...
HTTP代理服务器java 简单网站过滤
HTTP代理服务器是一种网络服务,它允许客户端(如Web浏览器)通过该服务器与目标服务器进行通信。在本场景中,我们有一个名为"Http 代理服务器 (源码)"的项目,这是一个控制台应用程序,专为VC6(Visual C++ 6.0)...
在这个主题中,我们关注的是使用Delphi编写的一个简单的HTTP代理服务器的源代码。HTTP代理是网络通信中的一个重要概念,它作为客户端和互联网之间的中介,允许用户通过代理服务器访问网页和其他在线资源。 在Delphi...
本项目提供的"简单HTTP代理服务器-源码c++"为开发者提供了一个基础的平台,用于理解和实现HTTP代理服务。源码使用C/C++编写,语言简洁且易于理解,适合初学者学习和进一步开发。 HTTP代理服务器是一个介于客户端和...
【简单HTTP代理服务器】是一种网络通信工具,它允许用户通过该服务器作为中介,与互联网上的其他服务器进行交互。这样的设计可以用于多种目的,包括隐私保护、网络访问控制、负载均衡等。在这里,我们讨论的是一个自...
本项目"vc++http代理服务器"是一个使用VC++6.0和MFC开发的HTTP代理服务器软件。对于VC++和MFC编程爱好者来说,这是一个很好的学习资源,可以深入理解网络编程、多线程处理、套接字编程以及代理服务器的工作原理。 ...
### SOCK-HTTP代理协议解析 #### 一、引言 随着互联网技术的不断发展与网络环境的日益复杂化,为了确保网络安全、控制访问权限以及优化网络性能,越来越多的企业和个人选择使用代理服务。代理服务通过中间服务器...
(1)设计并实现一个基本HTTP代理服务器。要求在指定端口(例如8080)接收来自客户的HTTP请求并且根据其中的URL地址访问该地址所指向的HTTP服务器(原服务器),接收HTTP服务器的响应报文,并将响应报文转发给对应的...
"Java的HTTP代理服务器 Smart Cache" 是一个基于Java开发的网络工具,主要用于处理HTTP网络请求,同时具备缓存功能,可以提升数据访问速度并减轻服务器压力。它利用了Java的多线程和网络编程能力,实现了对HTTP协议...