获得本机ip地址及mac地址的两种方法,见代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Net;
using System.IO;
namespace test
{
public class Class1
{
public static void GetIPAndMAC1()
{
//GetHostEntry 方法在 DNS 服务器中查询与某个主机名或 IP 地址关联的 IP 地址
System.Net.IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
if (addressList.Length > 1)
{
foreach (var addr in addressList)
{
Console.WriteLine(addr.AddressFamily +"\t"+ addr.ToString());
}
}
}
public static void GetIPAndMAC2()
{
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject MO in queryCollection)
{
string[] addresses = (string[])MO["IPAddress"];
string[] subnets = (string[])MO["IPSubnet"];
string[] defaultgateways = (string[])MO["DefaultIPGateway"];
Console.WriteLine("Network Card: {0}", MO["Description"]);
Console.WriteLine("MAC Address: {0}", MO["MACAddress"]);
foreach (string ipaddress in addresses)
{
Console.WriteLine("IP Address: {0}", ipaddress);
}
foreach (string subnet in subnets)
{
Console.WriteLine("Subnet Mask: {0}", subnet);
}
if (defaultgateways != null)
{
foreach (string defaultgateway in defaultgateways)
{
Console.WriteLine("Gateway: {0}", defaultgateway);
}
}
}
}
public static void Main()
{
//GetIPAndMAC2();
GetIPAndMAC1();
Console.ReadKey();
}
}
}