C#编程修改本机的IP,网关等
2006-04-20 00:36
218 查看
这个小程序主要使用了System.Management 中的ManagementClass,ManagementObjectCollection, ManagementObject等来获取系统的信息,并进行相应的设置,在.NET中都是相当简单的,只用调用相应的函数就可以了,这里主要使用了网卡信息察看和设置。对其他硬件信息的管理也是差不多的,有需要的朋友可以察看
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/setgateways_method_in_class_win32_networkadapterconfiguration.asp
using System.Management;
static void SetNetworkAdapter()
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;
//设置ip地址和子网掩码
inPar = mo.GetMethodParameters( "EnableStatic" );
inPar["IPAddress"] = new string[]
{ "10.22.21.111","192.168.10.9" };
inPar["SubnetMask"] = new string[]
{ "255.255.255.0","255.255.255.0" };
outPar = mo.InvokeMethod( "EnableStatic", inPar, null );
//设置网关地址
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = new string[]
{ "10.22.21.1","192.168.10.1"};
outPar = mo.InvokeMethod( "SetGateways", inPar, null );
//设置DNS
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = new string[]
{"179.32.42.4","179.32.42.5"};
outPar = mo.InvokeMethod( "SetDNSServerSearchOrder" ,inPar,null);
break;
}
}
/**//// <summary>
/// 显示当前的ip,子网掩码,网关,DNS,网卡地址等信息
/// </summary>
static void ShowNetworkAdapterInfo()
{
Console.WriteLine( "****** Current Network Adapter Information ******" );
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;
Console.WriteLine( "{0}/n SVC: '{1}' MAC: [{2}]", (string) mo["Caption"],
(string) mo["ServiceName"], (string) mo["MACAddress"] );
string[] addresses = (string[]) mo[ "IPAddress" ];
string[] subnets = (string[]) mo[ "IPSubnet" ];
string[] gateways = (string[]) mo["DefaultIPGateway"];
string[] dnses = (string[])mo["DNSServerSearchOrder"];
Console.WriteLine( " Addresses :" );
foreach(string sad in addresses)
Console.WriteLine( "/t'{0}'", sad );
Console.WriteLine( " Subnets :" );
foreach(string sub in subnets )
Console.WriteLine( "/t'{0}'", sub );
Console.WriteLine(" Gateways:");
foreach(string gw in gateways )
Console.WriteLine( "/t'{0}'", gw );
Console.WriteLine(" DNS:");
foreach(string dns in dnses )
Console.WriteLine( "/t'{0}'", dns );
}
}
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/setgateways_method_in_class_win32_networkadapterconfiguration.asp
using System.Management;
static void SetNetworkAdapter()
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;
//设置ip地址和子网掩码
inPar = mo.GetMethodParameters( "EnableStatic" );
inPar["IPAddress"] = new string[]
{ "10.22.21.111","192.168.10.9" };
inPar["SubnetMask"] = new string[]
{ "255.255.255.0","255.255.255.0" };
outPar = mo.InvokeMethod( "EnableStatic", inPar, null );
//设置网关地址
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = new string[]
{ "10.22.21.1","192.168.10.1"};
outPar = mo.InvokeMethod( "SetGateways", inPar, null );
//设置DNS
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = new string[]
{"179.32.42.4","179.32.42.5"};
outPar = mo.InvokeMethod( "SetDNSServerSearchOrder" ,inPar,null);
break;
}
}
/**//// <summary>
/// 显示当前的ip,子网掩码,网关,DNS,网卡地址等信息
/// </summary>
static void ShowNetworkAdapterInfo()
{
Console.WriteLine( "****** Current Network Adapter Information ******" );
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;
Console.WriteLine( "{0}/n SVC: '{1}' MAC: [{2}]", (string) mo["Caption"],
(string) mo["ServiceName"], (string) mo["MACAddress"] );
string[] addresses = (string[]) mo[ "IPAddress" ];
string[] subnets = (string[]) mo[ "IPSubnet" ];
string[] gateways = (string[]) mo["DefaultIPGateway"];
string[] dnses = (string[])mo["DNSServerSearchOrder"];
Console.WriteLine( " Addresses :" );
foreach(string sad in addresses)
Console.WriteLine( "/t'{0}'", sad );
Console.WriteLine( " Subnets :" );
foreach(string sub in subnets )
Console.WriteLine( "/t'{0}'", sub );
Console.WriteLine(" Gateways:");
foreach(string gw in gateways )
Console.WriteLine( "/t'{0}'", gw );
Console.WriteLine(" DNS:");
foreach(string dns in dnses )
Console.WriteLine( "/t'{0}'", dns );
}
}
相关文章推荐
- c# 自动修改计算机名、Ip、网关
- C# 修改IP、网关、DNS
- C# 修改IP、网关、DNS
- C#修改本机的IP,网关等网络地址的代码片段
- C#通过WMI修改IP,DNS还有网关!
- C#修改本机IP设置
- c#网络编程之TCP/IP(二)Thread方式服务器端编写
- 用命令行netsh修改windows的ip、网关、dns
- 获取并修改本机的ip,网关,dns,子网掩码等信息
- 引用:WMI的使用:C#修改IP
- C# 编程修改注册表 并立即生效
- linux 修改IP 网关
- Linux命令行修改IP、网关、DNS的方法
- c# .net 编程方式修改环境变量无效的解决办法
- C# 更改网关IP
- Linux命令行修改IP、网关、DNS的方法
- [转]Linux命令行修改IP、网关、DNS的方法
- shell 获取网关 以及修改ip 启用网卡
- linux设置网关修改ip