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);
}
}