当前位置: 代码迷 >> ASP.NET >> 怎么轮换IP
  详细解决方案

怎么轮换IP

热度:309   发布时间:2013-02-25 00:00:00.0
如何轮换IP
现在我要访问一个网站,但是连续多次访问的时候会被封IP。而我的服务器里面有多个IP,但是怎样去实现轮换IP,请各位高手指点!

------解决方案--------------------------------------------------------
修改IP的类方法
C# code
using System;using System.Management; public class ChangeIP{       private ManagementBaseObject iObj = null;    private ManagementBaseObject oObj = null;    private ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");    private readonly ManagementObjectCollection moc;     ///<summary>    /// example:    ///<code>    /// ChangeIP o = new ChangeIP();    /// string[] ipList = new string[]{"192.168.0.253","192.168.0.250"};    /// string[] subnetList = new string[]{"255.255.255.0","255.255.255.0"};    /// o.ChangeTo(ipList,subnetList);    ///</code>    ///</summary>    public ChangeIP()    {        moc = mc.GetInstances();    }     ///<summary>cortrol</summary>    ///<param name="ipAddr">IPAddr List</param>    ///<param name="subnetMask">subnetMask List</param>    public void ChangeTo(string[] ipAddr, string[] subnetMask)    {        foreach (ManagementObject mo in moc)        {            if (!(bool)mo["IPEnabled"]) continue;             iObj = mo.GetMethodParameters("EnableStatic");            iObj["IPAddress"] = ipAddr;            iObj["SubnetMask"] = subnetMask;            oObj = mo.InvokeMethod("EnableStatic", iObj, null);        }    }     ///<summary>cortrol</summary>    ///<param name="ipAddr">IPAddr List</param>    ///<param name="subnetMask">subnetMask List</param>    ///<param name="gateways">gateway List</param>    ///<param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>    public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric)    {        foreach (ManagementObject mo in moc)        {            if (!(bool)mo["IPEnabled"]) continue;             iObj = mo.GetMethodParameters("EnableStatic");            iObj["IPAddress"] = ipAddr;            iObj["SubnetMask"] = subnetMask;            oObj = mo.InvokeMethod("EnableStatic", iObj, null);             iObj = mo.GetMethodParameters("SetGateways");            iObj["DefaultIPGateway"] = gateways;            iObj["GatewayCostMetric"] = gatewayCostMetric;            oObj = mo.InvokeMethod("SetGateways", iObj, null);        }    }     ///<summary>cortrol</summary>    ///<param name="ipAddr">IPAddr List</param>    ///<param name="subnetMask">subnetMask List</param>    ///<param name="gateways">gateway List</param>    ///<param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>    ///<param name="dnsServer">DNSServer List</param>    public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric, string[] dnsServer)    {        foreach (ManagementObject mo in moc)        {            if (!(bool)mo["IPEnabled"]) continue;             iObj = mo.GetMethodParameters("EnableStatic");            iObj["IPAddress"] = ipAddr;            iObj["SubnetMask"] = subnetMask;            oObj = mo.InvokeMethod("EnableStatic", iObj, null);             iObj = mo.GetMethodParameters("SetGateways");            iObj["DefaultIPGateway"] = gateways;            iObj["GatewayCostMetric"] = gatewayCostMetric;            oObj = mo.InvokeMethod("SetGateways", iObj, null);             iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");            iObj["DNSServerSearchOrder"] = dnsServer;            oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);        }    }     ///<summary>DHCPEnabled</summary>    public void EnableDHCP()    {        foreach (ManagementObject mo in moc)        {            if (!(bool)mo["IPEnabled"]) continue;             if (!(bool)mo["DHCPEnabled"])            {                iObj = mo.GetMethodParameters("EnableDHCP");                oObj = mo.InvokeMethod("EnableDHCP", iObj, null);            }        }    }}
  相关解决方案