(c#) 关于本地网络的IP地址的一些事

1、不通过Win32_NetworkAdapterConfiguration获取本地连接的IP地址

代码如下:(需引用using System.Net.NetworkInformation

//IP地址获取
string get = "";
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in interfaces)
{
	if (ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
	{
		foreach (UnicastIPAddressInformation ips in
		ni.GetIPProperties().UnicastAddresses)
		{
			if (ips.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                        {
                            get = ips.Address.ToString().Trim();  //遍历到最后就是本地网络(以太网)
			}
		}
	}
}



2、 C#修改IP地址、子网掩码以及默认网关的方法

代码如下:(需引用usingSystem.Management;

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"] && (mo["IPAddress"] as String[])[0].ToString().Trim().Equals(ip))
{
	//设置ip地址和子网掩码 
	inPar = mo.GetMethodParameters("EnableStatic");
	inPar["IPAddress"] = new string[] { nip };       //远程IP地址
	inPar["SubnetMask"] = new string[] { nziwang };    //子网掩码
	outPar = mo.InvokeMethod("EnableStatic", inPar, null);

	//设置网关地址 
	inPar = mo.GetMethodParameters("SetGateways");
	inPar["DefaultIPGateway"] = new string[] { nwangguan }; //默认网关
	outPar = mo.InvokeMethod("SetGateways", inPar, null);
}
}




你可能感兴趣的:(C#)