这一段时间来,公司的网管不知道和谁学习的歪招,下了一个网管软件,动不动就踢人让我等良民无法正常上网,不过这个网管也傻,竟然没有做IP地址绑定,只要我改一个IP一样可以上网下东东,上网转了一圈发现有前人以写过修IP的类,不过没有检查IP冲突的判断,小弟我基于这个类花10几分钟加上了IP冲突写了一个自动修改IP地址的工具,方便又快,哈哈哈。。又可以上网下了。
以下是主要源程序。应付网管的小程序,所以没有用什么软件工程,有兴趣的朋友可以自已对手改一改。
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
Microsoft.VisualBasic.MyServices;
namespace
ChangIP

{
public partial class NetWork : Form

{
public string MYIP = "";
public NetWork()

{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)

{
modify.ChangeIP o = new modify.ChangeIP();
Random myIPNUM = new Random();
int myNUM;
bool ifOK = true;
while (ifOK)

{
Microsoft.VisualBasic.Devices.Computer MyComputer =
new Microsoft.VisualBasic.Devices.Computer();
myNUM = myIPNUM.Next(2, 244);
MYIP = "192.168.4." + myNUM.ToString();
if (MyComputer.Network.Ping(MYIP))

{
ifOK = true;
}
else

{
ifOK = false;
}

//MessageBox.Show(myNUM.ToString());
}

string[] ipList = new string[]
{ MYIP};


string[] subnetList = new string[]
{ "255.255.255.0" };

o.ChangeTo(ipList, subnetList);
MessageBox.Show("您的IP修改成功!,IP为:" + ipList[0].ToString());
}
}
}
using
System;

using
System.Management;

namespace
modify

{

public class ChangeIP

{




/**//// <summary>

/// Build of ArLi 2003.6.3

/// </summary>

public static readonly System.Version myVersion = new System.Version(1, 1);



private ManagementBaseObject iObj = null;

private ManagementBaseObject oObj = null;

private ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

private readonly ManagementObjectCollection moc;




/**//// <summary>

/// example:

/// <code>

/// ArLi.CommonPrj.ChangeIP o = new ArLi.CommonPrj.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);

}

}

}

}

}