当前位置: 代码迷 >> C# >> C#获取IP及MAC地址 步骤
  详细解决方案

C#获取IP及MAC地址 步骤

热度:452   发布时间:2016-04-28 08:42:07.0
C#获取IP及MAC地址 方法

C#获取IP及MAC地址 方法,比较齐全

 

using System.Net;using System;using System.Management;using System.Runtime.InteropServices;public class getIP{    [DllImport("Iphlpapi.dll")]    private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);    [DllImport("Ws2_32.dll")]    private static extern Int32 inet_addr(string ip);    //获取本机的IP    public string getLocalIP()    {        string strHostName = Dns.GetHostName(); //得到本机的主机名        IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP        string strAddr = ipEntry.AddressList[0].ToString();        return (strAddr);    }    //获取本机的MAC    public string getLocalMac()    {        string mac = null;        ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");        ManagementObjectCollection queryCollection = query.Get();        foreach (ManagementObject mo in queryCollection)        {            if (mo["IPEnabled"].ToString() == "True")                mac = mo["MacAddress"].ToString();        }        return (mac);    }    //获取远程主机IP    public string[] getRemoteIP(string RemoteHostName)    {        IPHostEntry ipEntry = Dns.GetHostByName(RemoteHostName);        IPAddress[] IpAddr = ipEntry.AddressList;        string[] strAddr = new string[IpAddr.Length];        for (int i = 0; i < IPADDR.LENGTH; I++)        {            strAddr[i] = IpAddr[i].ToString();        }        return (strAddr);    }    //获取远程主机MAC    public string getRemoteMac(string localIP, string remoteIP)    {        Int32 ldest = inet_addr(remoteIP); //目的ip         Int32 lhost = inet_addr(localIP); //本地ip        try        {            Int64 macinfo = new Int64();            Int32 len = 6;            int res = SendARP(ldest, 0, ref macinfo, ref len);            return Convert.ToString(macinfo, 16);        }        catch (Exception err)        {            Console.WriteLine("Error:{0}", err.Message);        }        return 0.ToString();    }    public static void Main(string[] args)    {        getIP gi = new getIP();        Console.WriteLine("本地网卡信息:");        Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());        Console.WriteLine("\n\r远程网卡信息:");        string[] temp = gi.getRemoteIP("scmobile-tj2");        for (int i = 0; i < TEMP.LENGTH; I++)        {            Console.WriteLine(temp[i]);        }        Console.WriteLine(gi.getRemoteMac("192.168.0.3", "192.168.0.1"));    }}

 

  相关解决方案