我的计算机上有两块网卡,一块连接Internet,一块连接办公室内几台计算机,其他计算机通过这台计算机上网。
请问在 C#中 如何配置Internet协议(TCP/IP)的属性,即通过程序修改指定网卡的IP地址、子网掩码、网关、DNS、备用DNS这五个选项?
请问在 C#中 如何配置Internet协议(TCP/IP)的属性,即通过程序修改指定网卡的IP地址、子网掩码、网关、DNS、备用DNS这五个选项?
解决方案 »
- 关于axWindowsMediaPlayer1中播放下一首的的问题?
- 高分求:winform内用脚本获得外部页面的Dom
- new 一个带有 main()入口函数的类为什么不会引起混乱?
- 使用AJAX日历,当文本框有默认值 ,为什么不能使用,求解!
- 如何在子类中共用父类引用的dll
- 谁能讲讲回调函数的工作机制呢?谢了
- 为什么.txt文件读出来的是乱码?
- 谁知道哪里有:应用了设计模式的优秀项目代码(供学习之用),给我提供点信息?(最好是c#的)
- 在C#中,TreeNode节点已经加到了TreeView树中,为什么TreeNode再添加节点时,其节点还是会显示在TreeViw中
- 键盘钩子为什么不能阻止键盘的关机键呢……
- 求助:.net编译执行的程序不出错,但是运行编译生成的exe文件程序操作过程中出错,请各位高手帮忙
- 请问如何在C#中使用相对路径?
http://community.csdn.net/Expert/TopicView.asp?id=2195377
using System;
using System.Management;
using System.Threading;
namespace ChangeIP
{
class IpChanger
{
[MTAThread]
static void Main(string[] args)
{
ReportIP();
// SwitchToDHCP();
SwitchToStatic();
Thread.Sleep( 5000 );
ReportIP();
Console.WriteLine( "end." );
}
static void SwitchToDHCP()
{
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;
inPar = mo.GetMethodParameters("EnableDHCP");
outPar = mo.InvokeMethod( "EnableDHCP", inPar, null );
break;
}
}
/// <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>
static void SwitchToStatic()
{
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;
inPar = mo.GetMethodParameters( "EnableStatic" );
inPar["IPAddress"] = new string[] { "192.168.1.1" };
inPar["SubnetMask"] = new string[] { "255.255.255.0" };
outPar = mo.InvokeMethod( "EnableStatic", inPar, null ); inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = new string[] { "192.168.0.1" };
outPar = mo.InvokeMethod("SetGateways", inPar, null); inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = new string[] { "61.139.2.69" };
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
break;
}
}
static void ReportIP()
{
Console.WriteLine( "****** Current IP addresses:" );
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" ];
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 );
}
}
}
}