• 大小: 124KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C#
  • 标签: c#  

资源简介

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个文件信息

评论

共有 条评论