资源简介
c# 设置ip代理,可自由切换代理IP,如果有代理IP列表...
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace test
{
public class Proxies
{
public static bool UnsetProxy()
{
return SetProxy(null null);
}
public static bool SetProxy(string strProxy)
{
return SetProxy(strProxy null);
}
public static bool SetProxy(string strProxy string exceptions)
{
InternetPerConnOptionList list = new InternetPerConnOptionList();
int optionCount = string.IsNullOrEmpty(strProxy) ? 1 : (string.IsNullOrEmpty(exceptions) ? 2 : 3);
InternetPerConnOption[] options = new InternetPerConnOption[optionCount];
//not use or use proxy server
options[0].m_Option = PerConnOption.INTERNET_PER_CONN_FLAGS;
options[0].m_Value.m_Int = (int)((optionCount < 2) ? PerConnFlags.PROXY_TYPE_DIRECT : (PerConnFlags.PROXY_TYPE_DIRECT | PerConnFlags.PROXY_TYPE_PROXY));
//proxy server
if (optionCount > 1)
{
options[1].m_Option = PerConnOption.INTERNET_PER_CONN_PROXY_SERVER;
options[1].m_Value.m_StringPtr = Marshal.StringToHGlobalAuto(strProxy);
//except for these addresses ...
if (optionCount > 2)
{
options[2].m_Option = PerConnOption.INTERNET_PER_CONN_PROXY_BYPASS;
options[2].m_Value.m_StringPtr = Marshal.StringToHGlobalAuto(exceptions);
}
}
// default stuff
list.dwSize = Marshal.SizeOf(list);
list.pszConnection = IntPtr.Zero;
list.dwOptionCount = options.Length;
list.dwOptionerror = 0;
int optSize = Marshal.SizeOf(typeof(InternetPerConnOption));
// make a pointer out of all that ...
IntPtr optionsPtr = Marshal.AllocCoTaskMem(optSize * options.Length);
// copy the array over into that spot in memory ...
for (int j = 0; j < options.Length; ++j)
{
IntPtr opt = new IntPtr(optionsPtr.ToInt32() + (j * optSize));
Marshal.StructureToPtr(options[j] opt false);
}
list.pOptions = optionsPtr;
// and then make a pointer out of the whole list
IntPtr ipcoListPtr = Marshal.AllocCoTaskMem((Int32)list.dwSize);
Marshal.StructureToPtr(list ipcoListPtr false);
// and finally call the API method!
int returnvalue = NativeMethods.InternetSetOption(IntPtr.Zero
InternetOption.INTERNET_OPTION_PER_CONNECTION_OPTION
ipcoListPtr list.dwSize) ? -1 : 0;
if (returnvalue == 0)
{ // get the error codes they might be helpful
retur
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-05-03 16:09 test\
文件 8108 2017-04-27 15:54 test\Class1.cs
文件 4972 2017-05-02 15:33 test\Form1.Designer.cs
文件 1520 2017-05-03 15:41 test\Form1.cs
文件 5817 2017-05-02 15:33 test\Form1.resx
文件 2022 2017-05-02 15:33 test\Form2.Designer.cs
文件 1742 2017-05-02 16:17 test\Form2.cs
文件 5817 2017-05-02 15:33 test\Form2.resx
文件 485 2017-04-27 14:44 test\Program.cs
目录 0 2017-04-27 14:44 test\Properties\
文件 1328 2017-04-27 14:44 test\Properties\AssemblyInfo.cs
文件 2860 2017-04-27 14:44 test\Properties\Resources.Designer.cs
文件 5612 2017-04-27 14:44 test\Properties\Resources.resx
文件 1091 2017-04-27 14:44 test\Properties\Settings.Designer.cs
文件 249 2017-04-27 14:44 test\Properties\Settings.settings
目录 0 2017-04-27 14:44 test\bin\
目录 0 2017-05-02 11:50 test\bin\Debug\
文件 27648 2015-08-18 16:24 test\bin\Debug\HttpHelper.dll
文件 13824 2017-05-03 15:41 test\bin\Debug\test.exe
文件 34304 2017-05-03 15:41 test\bin\Debug\test.pdb
文件 22472 2017-05-03 15:56 test\bin\Debug\test.vshost.exe
文件 490 2010-03-17 22:39 test\bin\Debug\test.vshost.exe.manifest
文件 8704 2017-05-02 15:22 test\bin\Debug\test1.exe
目录 0 2017-04-27 14:44 test\obj\
目录 0 2017-05-03 15:41 test\obj\Debug\
文件 1451 2017-04-27 20:56 test\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6969 2017-05-03 16:09 test\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
目录 0 2018-02-26 17:22 test\obj\Debug\TempPE\
文件 180 2017-05-02 15:33 test\obj\Debug\test.Form1.resources
文件 180 2017-05-02 15:33 test\obj\Debug\test.Form2.resources
文件 180 2017-04-27 21:34 test\obj\Debug\test.Properties.Resources.resources
............此处省略38个文件信息
相关资源
- C#中checkboxList控件用法总结
- C#编写Modbus TCP客户端程序
- C#多线程编程 线程与窗体交互源码
- C# .Net Socket TCP 大数据 大文件 传输 经
- c# winform 用鼠标画拉出来的虚线框鼠标
- c# 如何删除datagridview中数据并删除数
- 用C#模仿银行ATM自动取款机系统
- C#读取AD域组织架构及用户
- asp.net用OpenPop.dll获取邮件列表和内容
- ESP8266 调试工具 C#开发
- C#资源\\修改文件备注源码
- c# 解压zip完整demo 带进度条
- PC/SC 微软智能卡C#开发框架库
- C#数据同步源代码
- C# outline 2013
- C#使用七牛云存储上传文件
- 基于GDI+的 图元绘制拾取 C#实现
- C# CoreAudioApi封装库
- C#winform画图程序附解决方案,挺不错
- c# AE 基于excel生成点线面shp矢量
- sa-C#自定义控件usercontrol--美化单选按
- Lx-C#自定义控件---实现带行数和标尺的
-
Af-C#操作xm
l文件完整源码.rar - NF-C#版本口令加密BAT源码.rar
- 添加缓存区的C#串口接收
- c#单击按钮、滑轮滚动放大、缩小pi
- C#RDLC动态加载图片
- 一个简单的C#日历控件(源码)
- C# TCP网络通信小助手
- C#设计的一键更换IPDNS网关子网掩码还
评论
共有 条评论