硬盘序列号和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),