zoukankan      html  css  js  c++  java
  • 【网上收藏】取得网卡mac

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

  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/81/p/3021103.html
Copyright © 2011-2022 走看看