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;
}
}
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;
}
}
相关文章推荐
- C#获取本地计算机名IP,Mac地址
- C#中获取本地计算机的的计算机名,IP和MAC地址
- 批处理获取网卡名称(附修改IP、网关、DNS脚本)
- C#获取本地计算机名,IP,MAC地址
- C#winform修改IP,dns
- C# 版 防止 DNS 污染,获取域名真实 IP 地址
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- C#获取本地计算机名IP,Mac地址
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- C# 修改IP、网关、DNS
- C#获取本地计算机名IP,Mac地址
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- C#通过WMI修改IP,DNS还有网关!
- c# 遍历局域网计算机(电脑)获取IP和计算机名称
- C#获取本地计算机名IP,Mac地址
- c#获取和设置网卡ip/dns等信息
- c#(WinForm)遍历局域网计算机(电脑)获取IP和计算机名称(转)
- C#获取本地计算机名,IP,MAC地址,硬盘ID