文章收藏-FAQ 位置:电脑学习网

使用 SendArp 来获取 MAC 地址

    本文使用二种方式来获取 Mac Address.

    1. 只能获取本机的.

    using System.Management;

    ManagementClass mc = new ManagementClass(“Win32_NetworkAdapterConfiguration“);
        ManagementObjectCollection moc2 = mc.GetInstances();
        foreach (ManagementObject mo in moc2)
        {
            if ((bool)mo[“IPEnabled“] == true)
                this.textBox1.Text = mo[“MacAddress“].ToString();
            mo.Dispose();
        }

    2. 此种方法可以获取远程MAC地址

    using System.Runtime.InteropServices;

    [DllImport(“Iphlpapi.dll“)]
    static extern int SendARP(Int32 DestIP, Int32 SrcIP, ref Int64 MacAddr, ref Int32 PhyAddrLen);

    [DllImport(“Ws2_32.dll“)]
    static extern Int32 inet_addr(string ipaddr);

    ///〈summary〉
    /// SendArp获取MAC地址
    ///〈/summary〉
    ///〈param name=“RemoteIP“〉目标机器的IP地址如(192.168.1.1)〈/param〉
    ///〈returns〉目标机器的mac 地址〈/returns〉

    public static string GetMacAddress(string RemoteIP)
    {
        StringBuilder macAddress = new StringBuilder();
        try
        {
            Int32 remote = inet_addr(RemoteIP);

            Int64 macInfo = new Int64();
            Int32 length = 6;
            SendARP(remote, 0, ref macInfo, ref length);

            string temp = Convert.ToString(macInfo, 16).PadLeft(12, ’0’).ToUpper();

            int x = 12;
            for (int i = 0; i 〈 6; i++)
            {
                if (i == 5)
                {
                    macAddress.Append(temp.Substring(x - 2, 2));
                }
                else
                {
                    macAddress.Append(temp.Substring(x - 2, 2) + “-“);
                }
                x -= 2;
            }

            return macAddress.ToString();
        }
        catch
        {
            return macAddress.ToString();
        }
    }

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822