设置Web浏览器的HTTP或HTTPS代理(设置网页IP代理)
2018-01-21 09:16
513 查看
【1】设置Web浏览器的HTTP或HTTPS代理:
原理:非常简单,修改注册表中的两个键值,然后调用InternetSetOption函数更新即可。
步骤:
1、打开注册表:HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Internet Settings2、ProxyEnable(DWORD):1表示当前IE使用代理服务器,0表示不使用代理服务器
3、ProxyServer(字符串,必须是wchar_t类型):表示代理服务器的值(例如:111.111.111.111:80)
4、更新数据:InternetSetOption(NULL,INTERNET_OPTION_SETTINGS_CHANGED,NULL,0);
使用或禁用Web代理:
//打开与关闭HTTP代理(OK,TRUE打开,FALSE关闭) BOOL HTTP::OpenHttpProxy(BOOL IsOpen) { DWORD bProxyEnable = 0; LPBYTE pValue = NULL; ULONG regsize = 0; HKEY hKeyIn = HKEY_CURRENT_USER; HKEY hKeyOut = NULL; if (RegOpenKeyEx(hKeyIn, L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", 0, KEY_CREATE_LINK | KEY_WRITE | KEY_READ | KEY_NOTIFY, &hKeyOut) != ERROR_SUCCESS) goto Err; if (IsOpen == FALSE) {//是否要关闭 ULONG regsize = 0; if (RegQueryValueEx(hKeyOut, L"ProxyEnable", NULL, NULL, NULL, ®size) != ERROR_SUCCESS) goto Err; if (regsize <= 0) goto Err; pValue = new BYTE[regsize]; if (!pValue) goto Err; ZeroMemory(pValue, sizeof(BYTE)* regsize); if (RegQueryValueEx(hKeyOut, L"ProxyEnable", NULL, NULL, pValue, ®size) != ERROR_SUCCESS) goto Err; bProxyEnable = *(DWORD*)pValue; if (bProxyEnable == 0) goto Err; ZeroMemory(pValue, regsize); if (RegSetValueEx(hKeyOut, L"ProxyEnable", 0, REG_DWORD, pValue,regsize) != ERROR_SUCCESS) goto Err; } else {//打开代理 //打开代理开关 ULONG regsize = 0; if (RegQueryValueEx(hKeyOut, L"ProxyEnable", NULL, NULL, NULL, ®size) != ERROR_SUCCESS) goto Err; if (regsize <= 0) goto Err; pValue = new BYTE[regsize]; if (!pValue) goto Err; ZeroMemory(pValue, sizeof(BYTE)* regsize); if (RegQueryValueEx(hKeyOut, L"ProxyEnable", NULL, NULL, pValue, ®size) != ERROR_SUCCESS) goto Err; bProxyEnable = *(DWORD*)pValue; if (bProxyEnable == 0) { *(int*)pValue = 0x00000001; if (RegSetValueEx(hKeyOut, L"ProxyEnable", 0, REG_DWORD, pValue, regsize) != ERROR_SUCCESS) goto Err; } } //使设置生效 if (!InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0)) goto Err; //清理 if (pValue) { delete[]pValue; pValue = NULL; } if (hKeyOut) { RegCloseKey(hKeyOut); hKeyOut = NULL; } return TRUE; Err: if (pValue) { delete[]pValue; pValue = NULL; } if (hKeyOut) { RegCloseKey(hKeyOut); hKeyOut = NULL; } return FALSE; }
设置所代理的服务器IP以及它的端口号:
//设置代理服务器 BOOL HTTP::SerProxyServer(TCHAR* ServerInfo,int Wordslen) { int regsize = 0; HKEY hKeyIn = HKEY_CURRENT_USER; HKEY hKeyOut = NULL; //打开注册表 if (RegOpenKeyEx(hKeyIn, L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", 0, KEY_CREATE_LINK | KEY_WRITE | KEY_READ | KEY_NOTIFY, &hKeyOut) != ERROR_SUCCESS) goto Err; //设置 if (RegSetValueEx(hKeyOut, L"ProxyServer", 0, REG_SZ,(BYTE*)ServerInfo, (Wordslen + 1) * sizeof(TCHAR)) != ERROR_SUCCESS) goto Err; //使设置生效 if (!InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0)) goto Err; if (hKeyOut) { RegCloseKey(hKeyOut); hKeyOut = NULL; } return TRUE; Err: if (hKeyOut) { RegCloseKey(hKeyOut); hKeyOut = NULL; } return FALSE; }
附加说明:
1. 网上有很多免费的Http、Https的Web代理服务器。2. 本人推荐两个网站:http://ip.zdaye.com/(站大爷)、www.go/ubanjia.com(国内外IP代理)
3. 设置注册表跟设置IE的Internet属性里–>连接—>局域网设置里的代理服务器那两个选项是一样的。
实现:
相关文章推荐
- 如何用HttpWebRequest通过代理IP post 到https的网站?
- Python 设置 IP 代理 访问网页 ( 用户名密码验证代理 )
- 理解浏览器代理设置的意义-IP代理栽坑- SwichySharp
- [转]HttpWebRequest提高效率之连接数,代理,自动跳转,gzip请求等设置有关问题
- 【burpSuite】浏览器设置代理后无法访问https
- WebView打开网页,设置支持Javascript,浏览的网页后退而不是退出浏览器,判断页面加载过程,缓存的使用
- 浏览器---Chrome前端开发必备插件,如何设置代理,react调试,定死https协议,sublime热更新,浏览器发请求post
- 详解android 用webview加载网页(https和http)
- C#使用浏览器(Internet Explorer)默认的代理服务器设置(WebRequest,WebClient,HttpWebRequest)
- idhttp 在delphi7下如何设置代理IP和Port
- Android webview加载https网页时http图片无法显示
- HttpClient(四)-- 使用代理IP 和 超时设置
- HttpWebRequest提高效率之连接数,代理,自动跳转,gzip请求等设置问题
- java模拟http的Get/Post请求,并设置ip与port代理
- C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理
- 为 git 设置 http https 代理
- Android之WebView——解决加载Https以及根据网页动态设置WebView高度等难题
- 第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理
- Android WebView的使用(禁止超链接调用其他浏览器 设置滚动条 禁止横竖屏切换重新加载网页 )
- Python实现爬虫设置代理IP和伪装成浏览器的方法分享