JAVA通过注册表获取Internet代理设置
描述:这里利用JNI方式(涉及到本地动态链接库ICE_JNIRegistry.dll和注册表操作类库registry.jar)。首先Registry.openSubkey()打开指定的注册表项,然后获取其下的键ProxyEnable的值。若ProxyEnable值为0,则代理未开启;若ProxyEnable值不为0,则表明代理开启,获取键ProxyServer的值,并据此设置代理服务器的各个协议。
说明1 键ProxyEnable的值是16进制,双字节DWORD的,用来表明系统当前是否开启Internet代理。
说明2 键ProxyServer的值是一字符串,用来指明系统当前的Internet代理服务器设置。这一设置分为二种情况,其一是对所有协议使用统一的代理服务器设置(值如:172.23.196.238:808),其二是所有协议使用自定义的代理服务器设置(值如:ftp=172.23.196.221:808;gopher=172.23.196.221:808;http=172.23.196.221:808;https=172.23.196.221:808;socks=172.23.196.221:1080)。
/**
* Copyright (c) 2012 Trusted Software and Mobile Computing(TSMC)
* All right reserved.
*
* Created on Apr 24, 2012 12:42:24 PM
* http://jarg.iteye.com/
* Author: Jarg Yee <yeshaoting@gmail.com>
*/
package com.iteye.jarg.monitor.util;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Properties;
import com.ice.jni.registry.RegDWordValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryKey;
import com.ice.jni.registry.RegistryValue;
/**
* TODO 使用Internet代理服务器工具类
* 2012-04-25 11:49
*/
public class InternetUtil
{
/** 获取系统配置句柄 */
private static final Properties prop = System.getProperties();
/** 注册表中Internet表项位置 */
private static final String Internet = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
/** 初始化代理 from Internet Settings */
public static void initProxy()
{
try
{
// 注册表表项值
RegistryKey registryKey = Registry.openSubkey(Registry.HKEY_CURRENT_USER, Internet, RegistryKey.ACCESS_READ);
// 注册表表项键
RegistryValue registryValue = registryKey.getValue("ProxyEnable");
boolean proxyEnable = ((RegDWordValue) registryValue).getData() != 0; // 代理设置是否开启
// System.out.println("IE 是否启用了代理设置: " + proxyEnable);
if (proxyEnable == true) // 开启了Internet代理
{
registryValue = registryKey.getValue("ProxyServer");
String proxyServer = new String(registryValue.getByteData());
ProxyUtil.initProxy(proxyServer);
System.out.println("使用IE代理服务器.");
}
}
catch (Exception e)
{
System.out.println("ERROR:操作Windows注册表失败.");
// e.printStackTrace();
}
}
}
分享到:
相关推荐
1.2 Internet Communications Engine (Ice) 3 1.3 本书的篇章结 4 1.4 排字约定 4 1.5 源码示例 5 1.6 联系作者 5 1.7 Ice 支持 5 第 Ice 综述 7 第 2 章 Ice 综述 9 2.1 本章综 9 2.2 Ice 架构 9 2.3 Ice 服务 21...
Java连接池的大小设置,或JVM的设置等 3>数据库的连接 在应用服务的性能参数可能太小了 数据库启动的最大连接数(跟硬件的内存有关) 以上信息有一定的参考价值,实际情况可以参考此类调试。 如果是以上所说的小用户...
11.2.7 远程创建DLL组件:代理进程(surrogate) 11.2.8 IUnknown优化 11.2.9 DCOM安全机制 11.3 DCOM组件的开发与部署 11.3.1 基于NT服务的DCOM服务器——例程DCOMServ 11.3.2 测试服务程序 11.3.3 DCOMCNFG实用...
TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析...
TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析...
7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址...
7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址...
7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址...
TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13...
目录.................................................................................................................................2 内容提要...........................................................