打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#获取本机和其它计算机物理网卡地址(MAC)
 C#获取本机和其它计算机物理网卡地址(MAC) 
 
 
 
验证计算机MAC地址进行软件授权是一种通用的方法,C#可以轻松获取计算机的MAC地址,本文采用实际的源代码讲述了两种获取网卡的方式,第一种 方法使用ManagementClass类,只能获取本机的计算机网卡物理地址,第二种方法使用Iphlpapi.dll的SendARP方法,可以获取 本机和其它计算机的MAC地址。 
    方法1:使用ManagementClass类 
          示例: 
 
/// 获取网卡物理地址 
/// </summary> 
/// <returns></returns> 
public static string getMacAddr_Local() 

    string madAddr = null
    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
    ManagementObjectCollection moc2 = mc.GetInstances(); 
    foreach (ManagementObject mo in moc2) 
    { 
        if (Convert.ToBoolean(mo["IPEnabled"]) == true
        { 
            madAddr = mo["MacAddress"].ToString(); 
            madAddr = madAddr.Replace(':''-'); 
        } 
        mo.Dispose(); 
    } 
    return madAddr; 

说明: 
 
   1.需要给项目增加引用:System.Management,如图: 
 
    2.在程序开始添加包引入语句:using System.Management; 
 
    3.本方案只能获取本机的MAC地址; 
    方法2:使用SendARP类 
          示例: 
 
     
//下面一种方法可以获取远程的MAC地址 
[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 getMacAddr_Remote(string RemoteIP) 

    StringBuilder macAddress = new StringBuilder(); 
    try 
    { 
        Int32 remote = inet_addr(RemoteIP); 
        Int64 macInfo = new Int64(); 
        Int32 length = 6
        SendARP(remote, 0ref 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 - 22)); 
            } 
            else 
            { 
                macAddress.Append(temp.Substring(x - 22) + "-"); 
            } 
            x -= 2
        } 
        return macAddress.ToString(); 
    } 
    catch 
    { 
        return macAddress.ToString(); 
    } 

说明: 
 
    1.在程序开始添加包引入语句:using System.Runtime.InteropServices; 
 
    2.该方法可以获取远程计算机的MAC地址; 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#获得本机物理网卡的MAC地址
怎样查看电脑的物理地址(用命令查看和网卡查看)
扫描局域网mac地址
局域网内绑定IP地址不被占用
基于WMI获取本机真实网卡物理地址和IP地址
关于如何查看本机MAC(网卡物理地址)的方法 - め铭の运が的日志 - 网易博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服