using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Windows.Forms;using IP地址切换器.BusinessObjectLayer;namespace IP地址切换器.BusinessLogicLayer
{
class ModifyIP
{
public bool ModIP(IPAddress myIP)
{
bool isSuccess = false;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");//获取网卡硬件地址
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
myIP.Mac = mo["MacAddress"].ToString();
try
{
//设置IP地址和子网掩码
ManagementBaseObject newIPSubMask = mo.GetMethodParameters("EnableStatic");
newIPSubMask["IPAddress"] = new string[] { myIP.Ip };
newIPSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };//SubnetMask是子网掩码的意思
ManagementBaseObject setIPSubMask = mo.InvokeMethod("EnableStatic", newIPSubMask, null);
//设置
//ManagementBaseObject newSubMask = mo.GetMethodParameters("EnableStatic");
//newSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
//ManagementBaseObject setSubMask = mo.InvokeMethod("EnableStatic", newSubMask, null); //设置网关
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
newGate["DefaultIPGateway"] = new string[] { myIP.Gateway };
ManagementBaseObject setGateway = mo.InvokeMethod("SetGateways", newGate, null); //设置DNS
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = new string[] { myIP.Dns1, myIP.Dns2 };
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
isSuccess = true;
}
catch (Exception ex)
{
MessageBox.Show("原因:" + ex);
isSuccess = false;
}
}
}
return isSuccess;
}
/// <summary>
/// 获取本机MAC地址
/// </summary>
/// <returns></returns>
public string GetMAC()
{
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
mac = mo["MacAddress"].ToString();
}
}
return mac;
}
}
}
在这段代码中 foreach (ManagementObject mo in moc) 是什么意思啊?
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Windows.Forms;using IP地址切换器.BusinessObjectLayer;namespace IP地址切换器.BusinessLogicLayer
{
class ModifyIP
{
public bool ModIP(IPAddress myIP)
{
bool isSuccess = false;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");//获取网卡硬件地址
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
myIP.Mac = mo["MacAddress"].ToString();
try
{
//设置IP地址和子网掩码
ManagementBaseObject newIPSubMask = mo.GetMethodParameters("EnableStatic");
newIPSubMask["IPAddress"] = new string[] { myIP.Ip };
newIPSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };//SubnetMask是子网掩码的意思
ManagementBaseObject setIPSubMask = mo.InvokeMethod("EnableStatic", newIPSubMask, null);
//设置
//ManagementBaseObject newSubMask = mo.GetMethodParameters("EnableStatic");
//newSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
//ManagementBaseObject setSubMask = mo.InvokeMethod("EnableStatic", newSubMask, null); //设置网关
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
newGate["DefaultIPGateway"] = new string[] { myIP.Gateway };
ManagementBaseObject setGateway = mo.InvokeMethod("SetGateways", newGate, null); //设置DNS
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = new string[] { myIP.Dns1, myIP.Dns2 };
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
isSuccess = true;
}
catch (Exception ex)
{
MessageBox.Show("原因:" + ex);
isSuccess = false;
}
}
}
return isSuccess;
}
/// <summary>
/// 获取本机MAC地址
/// </summary>
/// <returns></returns>
public string GetMAC()
{
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
mac = mo["MacAddress"].ToString();
}
}
return mac;
}
}
}
在这段代码中 foreach (ManagementObject mo in moc) 是什么意思啊?
解决方案 »
- 如何限置“textbox”控件只能输入特定的数字与字符?
- 请教关于OpenFileDialog问题
- 在C#中怎样将Unicode的字符编码转换成gb2312字符编码啊
- FTP上传送文件时,中途断网
- C#中主函数的结构规划
- 如何设置“打开文件对话框”的初始目录为“我的电脑”!
- 初学WEB编程问题之一:数据库里表有一个字段类型为bit,如何在C#里把取得的值Object转成boolean类型?
- DataGrid导入Excel,身份证号码变成3.20205E+14
- 请教大虾一个问题,我定义了一个结构structA,我想判断一个它的变量是否为空,应该怎么写呀?
- C#中打印和预览中设置纸型的问题
- wpf ComboBox事件绑定问题
- 根据数据库实时更新datagridview的数据
遍历在moc中的mo
moc 就是查询WMI的一个结果集,也就是之前你获取到的网卡硬件地址集合ManagementObject mo 就是建立了一个实例,也就是网卡硬件地址这句话的意思就是搜寻在moc中为mo的实例而下面的语句就是,moc中的每个mo进行的操作
if ((bool)mo["IPEnabled"])
{
myIP.Mac = mo["MacAddress"].ToString();
}
ManagementObject 或 ManagementClass:分别为单个管理对象或类
遍历枚举数据
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{ }
是常用的列表元素遍历操作类似==>
JAVA中的
for (ManagementObject mo : moc)PHP中的
foreach ($moc as $mo)Perl中的
foreach $mo (@moc)Python中的
for mo in mocRuby中的
for mo in moc:
[your statement]
end