硬盘序列号和mac地址是一个东西吗?他们分别是什么?硬盘序列号可以该吗?

虚拟屋 2023-02-26 00:53 编辑:admin 258阅读

硬盘序列号和mac地址不是一个东西。一个是硬盘的,另一个是网卡的。

1、硬盘序列号,是硬盘厂家为自己的产品进行的唯一编号。不同的硬盘厂家,有不同的编号方法。
2、MAC地址,则是全球统一的,所有的网络设备都要进行的一个统一的编号。
MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。
MAC地址是网卡决定的,是固定的。

怎样获得一个硬盘的序列号,请附详细的原代码

刷新 | 搜索 | 提问 | 已解决 | 精华区 | 我的参与Delphi(未解决的问题、共300个)斑竹:airhorse、newyj讨论Delphi开发技术以及VCL控件的应用[下一页][1][2][3][4][5][6][7][8][9][10] 点击搜索~~~输入序列号

C# 获取硬盘序列号

这个用WMI就能查出来 只不过查出来的序列号每两位的字符有错位 交换一下就行了


下面是截图背景是HD Tune查出来的序列号



代码如下


添加System.Management.dll引用


using System.Management;


using System.Text;


    private void Form1_Load(object sender, EventArgs e)
    {
    object sn;
    string str = string.Empty;
    StringBuilder sb = new StringBuilder();
    ManagementClass cimobject = new ManagementClass(Win32_PhysicalMedia);
    ManagementObjectCollection moc = cimobject.GetInstances();
    foreach (ManagementObject mo in moc)
    {
    sn = mo.Properties[SerialNumber].Value;
    if (sn != null)
    {
    str = sn.ToString();
    for (int i = 0; i < str.Length; i += 2)
    {
    sb.Append(str[i + 1]);
    sb.Append(str[i]);
    }
    MessageBox.Show(sb.ToString().Trim());
    return;
    }
    }
    cimobject.Dispose();
    moc.Dispose();
    }


如果用WMI查不出来的话 你可以用Windows API 代码比较我就不贴了 给你个地址吧


不过这里就几个错误的地方给你写出来


case PlatformID.Win32视窗系统: -> case PlatformID.Win32Windows:


@\\.\Smartvsd, -> @\\.\Smartvsd,


string.Format(@\\.\PhysicalDrive{0},driveIndex), -> string.Format(@\\.\PhysicalDrive{0}, driveIndex),