基本信息
源码名称:C# 设置代理IP 并通过webbrowser访问网页源码(亲测通过)
源码大小:0.03M
文件格式:.rar
开发语言:C#
更新时间:2016-02-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace webbrowser代理ip { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region 设置代理IP private void button2_Click(object sender, EventArgs e) { string proxy = this.textBox1.Text; RefreshIESettings(proxy); IEProxy ie = new IEProxy(proxy); MessageBox.Show(ie.RefreshIESettings().ToString()); } #endregion #region 取消代理IP private void button3_Click(object sender, EventArgs e) { IEProxy ie = new IEProxy(null); ie.DisableIEProxy(); } #endregion #region 打开网页 private void button1_Click(object sender, EventArgs e) { this.webBrowser1.Navigate("http://www.ip138.com/", null, null, null); } #endregion #region 代理IP public struct Struct_INTERNET_PROXY_INFO { public int dwAccessType; public IntPtr proxy; public IntPtr proxyBypass; }; //strProxy为代理IP:端口 private void RefreshIESettings(string strProxy) { const int INTERNET_OPTION_PROXY = 38; const int INTERNET_OPEN_TYPE_PROXY = 3; const int INTERNET_OPEN_TYPE_DIRECT = 1; Struct_INTERNET_PROXY_INFO struct_IPI; // Filling in structure struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY; struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy); struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local"); // Allocating memory IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI)); if (string.IsNullOrEmpty(strProxy) || strProxy.Trim().Length == 0) { strProxy = string.Empty; struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_DIRECT; } // Converting structure to IntPtr Marshal.StructureToPtr(struct_IPI, intptrStruct, true); bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI)); } [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); public class IEProxy { private const int INTERNET_OPTION_PROXY = 38; private const int INTERNET_OPEN_TYPE_PROXY = 3; private const int INTERNET_OPEN_TYPE_DIRECT = 1; private string ProxyStr; [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); public struct Struct_INTERNET_PROXY_INFO { public int dwAccessType; public IntPtr proxy; public IntPtr proxyBypass; } private bool InternetSetOption(string strProxy) { int bufferLength; IntPtr intptrStruct; Struct_INTERNET_PROXY_INFO struct_IPI; if (string.IsNullOrEmpty(strProxy) || strProxy.Trim().Length == 0) { strProxy = string.Empty; struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_DIRECT; } else { struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY; } struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy); struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local"); bufferLength = Marshal.SizeOf(struct_IPI); intptrStruct = Marshal.AllocCoTaskMem(bufferLength); Marshal.StructureToPtr(struct_IPI, intptrStruct, true); return InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, bufferLength); } public IEProxy(string strProxy) { this.ProxyStr = strProxy; } //设置代理 public bool RefreshIESettings() { return InternetSetOption(this.ProxyStr); } //取消代理 public bool DisableIEProxy() { return InternetSetOption(string.Empty); } } #endregion } }