现在学生机已经连接到我服务端了,我现在想要发送命令过去,设置学生机IP,让他们不能上网哈哈,命令用socket发送就可以了,这个在前面几个文章中已经讲过了,现在来看看怎么更改IP这个些东西。
代码如下:
/// <summary>
/// 设置IP MASK DNS
/// </summary>
/// <param name="ip"></param>
/// <param name="submask"></param>
/// <param name="getway"></param>
/// <param name="dns"></param>
public void SetNet(string[] ip, string[] submask, string[] getway, string[] dns)
{
ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = wmi.GetInstances();
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
foreach (ManagementObject mo in moc)
{
//如果没有启用IP设置的网络设备则跳过
if (!(bool)mo["IPEnabled"])
continue;
//设置IP地址和掩码
if (ip != null && submask != null)
{
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ip;
inPar["SubnetMask"] = submask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
}
//设置网关地址
if (getway != null)
{
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = getway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
}
//设置DNS地址
if (dns != null)
{
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = dns;
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
}
}
}
用法示例
--------------说明------------------</para>
string[] ip = { "192.168.1.2" };
string[] ipmask = { "255.255.255.0" };
string[] gateway = { "192.168.1.1" };
string[] dns = { "114.114.114.114","227.210.210.210" };
SetNet(ip, ipmask, gateway, dns);