首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

怎么获取客户端Mac地址

2012-06-12 
如何获取客户端Mac地址?如何获取客户端的MAC地址?[解决办法]三种方法http://www.soaspx.com/dotnet/csharp

如何获取客户端Mac地址?
如何获取客户端的MAC地址?

[解决办法]
三种方法
http://www.soaspx.com/dotnet/csharp/csharp_20091105_1431.html
[解决办法]
再推荐一个
http://www.cnblogs.com/scgw/archive/2008/06/04/1213926.html
[解决办法]
winform 的:

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Management;using System.Runtime.InteropServices;using System.Net;namespace GetMac{    class Program    {        [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();        }        static void Main(string[] args)        {            Program gi = new Program();            Console.WriteLine("本地网卡信息:");            Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());            Console.ReadKey();            Console.WriteLine("\n\r远程网卡信息:");            string[] temp = gi.getRemoteIP("WKS049");//目标机名            for (int i = 0; i < temp.Length; i++)            {                Console.WriteLine(temp[i]);            }            string remote = gi.getRemoteMac("13.0.0.26", "13.0.0.103");//本机IP和目标机IP            StringBuilder b = new StringBuilder();            for (int i = remote.Length - 2; i >= 0; i = i - 2)            {                b.Append(remote.Substring(i, 2));                b.Append(":");            }            if (b.Length > 1)            {                b.Remove(b.Length - 1, 1);            }            Console.Write(b);            Console.ReadKey();        }    }} 

热点排行