我有一些示例代码,我可以更改自己的IP地址。
现在我有关于更改网络IP地址的问题。 当我的意思是网络(连接到局域网的计算机) 我也希望连接和配置他们的IP地址。
示例
我有2台计算机,IP地址为192.168.1.6 - Computer 1
和192.168.1.7 - Computer 2
。所以现在我在计算机1,我想连接到192.168.1.7
并将IP地址更改为192.168.1.8
代码
private void button1_Click_1(object sender, EventArgs e)
{
//example of ip 10.11.3.120
try
{
setIP();
setGateway();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
setIP();
setGateway();
MessageBox.Show("Update Success");
}
}
private void setIP()
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
if ((bool)objMO["IPEnabled"])
{
try
{
ManagementBaseObject setIP;
ManagementBaseObject newIP =
objMO.GetMethodParameters("EnableStatic");
//string ip_address = "10.11.3.120";
//string subnet_mask = "255.255.255.0";
newIP["IPAddress"] = new string[] { textBox1.Text };
newIP["SubnetMask"] = new string[] { textBox2.Text };
setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
public void setGateway()
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
if ((bool)objMO["IPEnabled"])
{
try
{
ManagementBaseObject setGateway;
ManagementBaseObject newGateway =
objMO.GetMethodParameters("SetGateways");
newGateway["DefaultIPGateway"] = new string[] { textBox3.Text };
newGateway["GatewayCostMetric"] = new int[] { 1 };
setGateway = objMO.InvokeMethod("SetGateways", newGateway, null);
}
catch (Exception)
{
throw;
}
}
}
}
答案 0 :(得分:0)
这不是一个直接的答案。但是,您应该拥有此处所需的所有信息
Connecting to WMI Remotely with C#
简而言之,您需要创建一个系统ManagementScope
注意
System.Management
是用于访问的原始.NET命名空间 WMI;但是,此命名空间中的API通常较慢并且可以 相对于更现代的而言,它们的规模也不大Microsoft.Management.Infrastructure
同行。
然而
使用计算机名称和WMI路径创建ManagementScope
对象,并通过调用ManagementScope.Connect()
连接到目标。
如果您连接到其他域中的远程计算机或使用其他用户名和密码,则必须在ManagementScope
的调用中使用ConnectionOptions
对象。
ConnectionOptions
包含用于描述的属性 身份验证,模拟,用户名,密码等 连接选项。
ConnectionOptions options = new ConnectionOptions();
options.Impersonation = System.Management.ImpersonationLevel.Impersonate;
// options takes more arguments, you need to read up on what you want
ManagementScope scope = new ManagementScope("\\\\FullComputerName\\root\\cimv2", options);
scope.Connect();
ManagementPath path = new ManagementPath("Win32_NetworkAdapterConfiguration");
ObjectGetOptions o = new ObjectGetOptions(null, System.TimeSpan.MaxValue, true);
ManagementClass objMC = new ManagementClass(scope, path, o);
...
一般来说,建议您设置模拟 除非明确需要,否则等级为Impersonate
补充阅读
Connecting to WMI Remotely with C#
免责声明:您必须阅读这些主题并了解您的需求。