您的位置:首页 > 理论基础

C# 获取和修改 计算机名、IP、DNS等

2011-06-20 13:04 531 查看
首先,我们需要引入 System.Net 这个命名空间

using System.Net;

string pcName = Dns.GetHostName(); //取计算机名
string ip = Dns.GetHostByName(pcName).AddressList[0].ToString(); //取IP方法一(VS里提示已过时,汗!)
string ip2 = Dns.GetHostEntry(pcName).AddressList[0].ToString(); //取IP方法二

方法2,就是引入 System.Management 首先先添加程序集引用,然后用以下代码获取:

using System.Management;

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
{
string mac = nic["MacAddress"].ToString();//Mac地址
string ip = (nic["IPAddress"] as String[])[0];//IP地址
string ipsubnet = (nic["IPSubnet"] as String[])[0];//子网掩码
string ipgateway = (nic["DefaultIPGateway"] as String[])[0];//默认网关

string dns = nic["DNSServerSearchOrder"] as String[])[0]; //DNS
}
}

方法3,引入 System.Net.NetworkInformation 这个命名空间

NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
if (adapter.NetworkInterfaceType.ToString().Equals("Ethernet"))
{
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
if (ip.UnicastAddresses.Count > 0)
{
ip.UnicastAddresses[0].Address.ToString(); //IP地址
ip.UnicastAddresses[0].IPv4Mask.ToString(); //子网掩码
}
if (ip.GatewayAddresses.Count > 0)
ip.GatewayAddresses[0].Address.ToString(); //默认网关
if (ip.DnsAddresses.Count > 0)
{
ip.DnsAddresses[0].ToString(); //首选DNS服务器地址
if (ip.DnsAddresses.Count > 1)
ip.DnsAddresses[1].ToString();
ip.DnsAddresses[1].ToString();//备用DNS服务器地址
}
}

接下来我们就来修改 计算机名、IP、DNS 等

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: