您现在的位置是: 首页 > 软件应用 软件应用

硬盘序列号 wmic_c硬盘序列号

tamoadmin 2024-08-02 人已围观

简介1.序列号c开头的好不好2.苹果序列号c开头代表什么3.苹果笔记本序列号c开头什么意思4.vb中怎样获得硬盘序列号?5.电脑中的A。B。C。D。E盘分别代表的英文意思6.c#怎样获取u盘序列号会的,这个号是磁盘的卷序列号.磁盘序列号,简称磁盘ID,是对磁盘进行格式化时随机产生的磁盘标识信息,是一个卷序列号。同一机器两次格式化随机产生固定格式的序列号相同几率几乎为零,即如果重新分区,磁盘序列号将会随

1.序列号c开头的好不好

2.苹果序列号c开头代表什么

3.苹果笔记本序列号c开头什么意思

4.vb中怎样获得硬盘序列号?

5.电脑中的A。B。C。D。E盘分别代表的英文意思

6.c#怎样获取u盘序列号

硬盘序列号 wmic_c硬盘序列号

会的,这个号是磁盘的卷序列号.

磁盘序列号,简称磁盘ID,是对磁盘进行格式化时随机产生的磁盘标识信息,是一个卷序列号。同一机器两次格式化随机产生固定格式的序列号相同几率几乎为零,即如果重新分区,磁盘序列号将会随之改变。DOS的后期版本和WINDOWS、WINNT均用了这种磁盘标识方式,因而磁盘序列号常被运用用于商业化软件进行加密使用。从WINDOWS9.X切换到MS-DOS方式,键入DIR命令后回车,屏幕出现当前卷标序列号信息,这个类似"0A48-1CD7"的序列号是一个16进制数。

另外,还有磁盘物理序列号是唯一的,出厂时定的.所以好多软件注册用这个号做生成注册码来限制软件的使用.拷到另外一台电脑上软件就不能用了.系统重装,格式化硬盘都没有用,只能在这个硬盘上用.当然这个号也是可以改变的.改变方法如下:

更改硬盘号的步骤: (1)一般需要使用windows启动盘启动计算机。 (2)使用VOL命令,查看欲修改的硬盘序列号码,并用笔记录。 例如: 该硬盘号码为0B3214E7 (2)启动Debug (3)使用L命令将硬盘中存放硬盘序列号放入开始地址为100的内存中。 命令格式 L 内存开始地址 驱动器代码 开始扇区 扇区数 其中:内存开始地址 一般为100 驱动器代码 A盘------0 B盘------1 C盘------2 D盘------3 开始扇区 磁盘序列号放在0扇区 扇区数 取一个扇区就可以 例: L 100 2 0 1 表示将C盘的第0扇区放入开始地址为100的内存中 (4)使用D命令观察内存内容 命令格式:D 〔地址〕 例: D 100 表示将内存地址为100的内容显示到屏幕上 (5) 在屏幕上找硬盘序列号,将记录的硬盘号码与显示的内容相比较,找硬盘号的地址 例如,硬盘号码是0B3214E7, 经过比较,可知硬盘序列号的地址是143,144,145和146 注意:各个计算机的硬盘号码所在地址不同,都需要通过比较的方法寻找 找到后,可以输入命令:D 143 以确定号码地址的正确性。 (5) 修改硬盘号码,将修改的硬盘号码写入内存。 命令格式:E 地址 内容 其中: 地址 为欲修改内存的地址 内容 为修改后的内容,在这里是硬盘号码 ,如果要将硬盘号码修改为22e75628 则输入: E 143 28 E 144 56 E 145 e7 E 146 22 (6)使用写入命令将内存中内容写入硬盘 命令格式: W 内存开始地址 驱动器代码 开始扇区 扇区数 其中,内存开始地址、驱动器代码、开始扇区、扇区数,应该和L命令的参数一致,这一点非常重要,否则硬盘就不能使用了。 (7)使用Q命令退出DEBUG,启动计算机后,再用VOL命令检查硬盘序列号,可以观察到硬盘号已经变了。

当然也可以使用软件,如PC3000下载:

://.onlinedown.net/soft/29459.htm

序列号c开头的好不好

硬盘序列号识别

希捷(Seagate),日立(HITACHI),迈拓(Maxtor),西部数据(Western Digital)和三星(Samsung)

一、希捷(Seagate)

Seagate硬盘的编号比较简单,其识别方法为:“ST+硬盘尺寸+容量+主标识+副标识+接口类型” 。

为了另大家容易理解,简单的表示形式为:ST“X,XXXX,XX,XXX”,也就是说其硬盘编号可以分为四部分。

首先,“ST”代表的是“Seagate”,也就是说是希捷公司的产品。

然后第一部分的“X”是表示其硬盘外形和尺寸。“1”表示3.5英寸,厚度为41mm的全高硬盘;“3”表示3.5英寸,厚度为25mm的半高硬盘; “4”表示5.25英寸,厚度为82mm的硬盘;“5”表示尺寸为3.5英寸,厚度为19mm的硬盘;“9”表示为尺寸2.5英寸的硬盘。

第二部分的四个“X”是表示硬盘的容量,通常由3到4位数字组成,单位是GB。如:“1600”就是表示这硬盘的容量为160GB,而“400”或者“800”就表示其容量为40GB或者80GB了。

第三部分的两个“X”为硬盘标志,由主标志和副标志所组成。前一个数字是主标志,在Seagate的IDE硬盘中都是指硬盘的碟片数,如数字“2”则表示该硬盘用了2张盘片。而在Seagate的SCSI硬盘中,其主标识则是指硬盘的转速了。有了主标识当然就会有副标识了,而后一个数字就是副标识。它是只有当主标识相同或者无效时,副标识才有意义。它一般代表硬盘的性能和代数,当数字越大,表示的代数越高,性能越好,此款硬盘也就越新。

第四部分的三个“X”主要由1到3个字母所组成,表示硬盘接口类型等。一般的桌面IDE硬盘较为简单,但如果包括了现在和早期的SCSI硬盘的话,其含义就变得较为复杂了。

“A”表示为ATA UDMA/33或UDMA/66 IDE的接口

“AS”表示为Serial ATA150的接口

“”表示为笔记本电脑专用的ATA的接口

“N”表示为50针Ultra SCSI的接口,其数据传输率为20MB/s

“W”表示为68针Ultra SCSI接口,其数据传输率为40MB/s

“WC”表示为80针Ultra SCSI的接口

“FC”表示为光纤,可提供高达100MB/s的数据传输率,并且支持热拔插

“WD”表示为68针Ultra Wide SCSI的接口

“LW”表示为68针Ultra-2 SCSI(LVD)的接口

“LC”表示为80针Ultra-2 SCSI(LVD)的接口

我们以Seagate酷鱼硬盘“ST3160023AS”为例子,通过例子的编号我们可以知道该硬盘是希捷公司生产的3.5英寸厚度为25mm的半高硬盘,其用2张硬盘盘片,总容量是160GB的Serial ATA150。另外,如果你看到硬盘上印刷着“7200.7”等字符的,就说明这是希捷新推出的单碟容量80GB的硬盘系列;看到“Barracuda 7200.7 Plus”等字符,我们就了解到了这个系列的产品是用8MB缓存,Serial ATA 150接口或者Ultra ATA 100接口的高端产品。

二、日立(HITACHI)

日立硬盘有180GXP和7K250两个系列,所以要辨别其编号比较复杂。180GXP系列沿用了IBM硬盘编号。其识别方法为:“IC+盘片尺寸+硬盘高度+容量+接口类型+系列型号+转速+缓存容量”

简单的表示形式为:IC“XX,X,XXX,XX,XX,XX-X”,其硬盘编号可以分为七部分。

“IC”表示的是IBM公司的产品。

第一部分的两个“X”表示的是硬盘的外形和尺寸。“35”表示3.5英寸(88.9毫米),“25”表示2.5英寸(63.5毫米)的硬盘产品。

第二部分的“X”是表示硬盘的高度。“L”代表1英寸(25.4毫米),“T”代表0.49英寸(12.5毫米),“N”代表0.37英寸(9.5毫米)的硬盘产品。

第三部分的三个“X”表示的是硬盘的容量,单位是GB。如“180”就是表示该硬盘的容量为180GB,“080”等就是80GB了。

第四部分的两个“X”表示的是硬盘接口的类型。

“AV”表示为ATA接口

“UW”表示为Ultra160 SCSI 68-pin Wide的接口

“UC”表示为Ultra160 SCSI 80-pin SCA的接口

“XW”表示为Ultra320 SCSI 68-pin Wide的接口

“XC”表示为Ultra320 SCSI 80-pin SCA的接口

“F2”表示为FC-AL-2(2 Gbit)的接口

第五部分的两个“X”表示硬盘产品系列的型号。其“ER”表示Deskstar 60GXP系列,“VA”表示Deskstar 120GXP系列,“V2”表示Deskstar 180GXP系列。

第六部分的两个“X”表示为硬盘的转速,单位是RPM/分。其“04”表示为4200 RPM/分,“05”表示为5400 RPM/分,“07”表示为7200 RPM/分,“10”表示为10000 RPM/分,“15”表示为15000 RPM/分。

第七部分的“X”表示着硬盘缓存的容量,从Deskstar 180GXP开始启用。“0”表示为2MB缓存,“1”表示为8MB缓存。其中使用一个盘片的60GB产品缓存为2MB,使用两个盘片的80GB和 120GB产品缓存有2MB和8MB两种,使用三个盘片的180GB产品缓存都为8MB,购买时要注意区分。

以“IC35L180AVV207-1”这个编号为例,我们通过编号可以知道该硬盘是IBM公司生产的3.5英寸,高1英寸的硬盘,其总容量为60GB,用Ultra ATA接口,为Deskstar 180GXP系列的产品,转速是7200 RPM/分,有着8MB的缓存。

日立的7K250系列是继Deskstar 180GXP推出后的新品。其性能比早期的产品更出色,但是硬盘编号也发生了变化,造成了混乱。下面我们也来研究一下日立7K250系列的硬盘编号规律。

7K250系列的编号标注形式为“HDS+转速+系列的最大容量+该产品容量+产品系列代码+硬盘高度+接口类型+缓存”。

简单的表示为:HDS“XX,XX,XX,X,X,XX,X,X”,硬盘编号也可以分为八个部分。

“HDS”表示为日立(HITACHI)的Deskstar系列硬盘产品。

第一部分的两个“X”表示硬盘的转速。如果其标注为“42”,“54”,“72”,“10”,“15”等的话,那么这个硬盘的转速分别为4200 RPM/分,5400 RPM/分,7200 RPM/分, 10000 RPM/分,15000 RPM/分。

第二部分的两个“X”表示的是该产品系列的最大容量,单位为GB。“25”就表示该产品最大容量为250GB。

第三部分的两个“X”表示为硬盘容量,单位有GB或者10GB。例如“80”就表示80GB,“25”就表示250GB。

第四部分的“X”表示硬盘的代数。现在所有7K250系列都是字母“V”。

第五部分的“X”表示硬盘的高度。这里和上面的IBM编号是一样的。

第六部分的两个“X”表示硬盘的接口类型,有“AT”和“ST”。其分别代表为Ultra ATA100接口和Serial ATA150接口。

第七部分的“X”表示硬盘缓存的容量,有数字“2”和“8”。其分别代表为2MB缓存和8MB缓存的硬盘产品。

第八部分的“X”是硬盘的保留值,目前暂时为数字“0”。

就以日立7K250系列“HDS722525VLAT80”的硬盘编号来做例子,我们可以知道其属于7200 RPM/分,最大容量为250GB和总容量为250GB的硬盘,高1英寸,用的是Ultra ATA100接口并拥有8MB缓存。

三、迈拓(Maxtor)

以前Maxtor硬盘一直用7位的编号,但从金钻系列Diamondmax Plus9开始,其硬盘编号变成了13个了。不过,对我们识别硬盘有用的还是前面的7位编号。迈拓编号多为“系列号+此系列硬盘最大容量+首位+容量+接口类型+碟头数”。

我们将其简单表示为“XX,XXX,X,X”四个部分。

第一部分的两个“X”表示产品系列和型号。

“3”为40GB或以下,“9”为40GB以上,此系列为星钻一代

“2R”表示为Fireball 531DX美钻一代

“2B”表示为Fireball 541DX美钻二代

“2F”表示为Fireball 3

“4W”表示为Diamondmax 536DX星钻二代

“4D”,“4K”,“4G”都表示为Diamondmax 540X星钻三代

“4R”表示为Diamondmax 16星钻四代

“5T”表示为Diamondmax Plus60金钻六代

“6L”表示为Diamondmax Plus D740X金钻七代

“6E”表示为Diamondmax Plus8

“6Y”表示为Diamondmax Plus9

第二部分的三个“X”表示容量,单位是GB。例如“080”或者“200”就分别表示为80GB或者200GB。

第三部分的“X”表示缓存容量、接口及主轴马达类型。

“D”表示为Utral ATA/33

“U”表示为Utral ATA/66

“H”表示为Ultra ATA100接口,2MB缓存

“J”表示为Ultra ATA133接口,2MB缓存并使用滚珠轴承马达(Ball Bearing Motor)

“L”表示为Ultra ATA133接口,2MB缓存并使用液态轴承马达(Fluid Dynamic Bearing Motor)

“P”表示为Ultra ATA133接口,8MB缓存并使用液态轴承马达,

“M”表示为Serial ATA150接口,8MB缓存并使用液态轴承马达。

第四部分的“X”表示使用的磁头数,也就是记录面数量,由此也能可以凭着“硬盘单碟容量=2×硬盘总容量/磁头数”这个公式来推算出单碟容量。不过,金钻系列的Diamondmax Plus9开始,该数字变成了“0”,但是我们知道金钻系列的Diamondmax Plus9都是单碟容量80GB的产品,所以这里的变化对我们辨识并不影响。

我们以金钻系列的Diamondmax Plus9编号“6Y200M006500A”的硬盘作例子,我们已经知道这个编号前7位才是对我们有用,所以我们可以看出该硬盘容量是200GB,用Serial ATA150接口,拥有8MB缓存并使用液态轴承马达。

四、西部数据(Western Digital)

西部数据的编号标注形式因产品系列而异,编号方式显得简洁明了,由12个数字或者字母所组成。在12个编号中,前6个编号为主编号,后面的6个编号为附加编号。其桌面市场的主打系列鱼子酱的标注方式为“厂商代号+容量+转速,缓存+接口类型”。

简单的表示为WD“XXXX,X,X-XX,X,X,XX”,可以分为七个部分。

“WD”是“Western Digital”的简称,表示其为西部数据公司的产品。

前6位主编号:

第一部分的四个“X”表示为硬盘容量,通常由3到4位数字组成,单位为GB。其标识和希捷是一样的,如4位的“1200”代表120GB,3位的“800”则代表80GB。

第二部分的“X”表示为硬盘转速及缓存容量。

“A”表示转速为5400 RPM/分的鱼子酱硬盘

“B”表示转速是7200 RPM/分的鱼子酱硬盘

“E”表示转速是5400 RPM/分的Protege系列硬盘

“J”表示转速为7200 RPM/分,数据缓存为8MB的高端鱼子酱硬盘

“G”表示为转速拥有10000 RPM/分,数据缓存为8MB的最高端桌面硬盘Raptor系列

第三部分的“X”表示接口的类型。

“A”表示为Ultra ATA/66或者更早期的接口类型

“B”表示为Ultra ATA/100

“W”表示应用于A/V(数码影音)领域的硬盘

“D”表示为Serial ATA150接口

后六位附加编号:

对于后面的六位附加编号,笔者很抱歉,找不到相关于Serial ATA150接口规范的硬盘附加编号资料,这不能不说是一个遗憾。

第四部分的两个“X”表示为OEM客户标志。如今西数面向零售市场的产品,其两个编号都是为数字“00”。如果作为其它字符的话,则为OEM客户的代码,不同的编号对应不同OEM客户,而这种编号的硬盘通常是不面向零售市场的。

第五部分的“X”代表硬盘单碟容量,单位是GB。“C”代表硬盘单碟容量为40GB,“D”代表66GB,“E”代表83GB。

第六部分的“X”表示同系列硬盘的版本代码,该代码随着不同系列而变。

“A”表示7200转/分,Ultra ATA100接口的BB系列;

“B”表示5400转/分,Ultra ATA66接口的AB系列;

“P”表示5400转/分,Ultra ATA100接口的EB系列;

“R”表示7200转/分,Ultra ATA100接口,具有8MB缓存的JB系列。

而在单碟66GB和83GB的产品中,还出现了“U”,“V”等其他字母,分别对应JB系列和BB系列产品。

最后部分的两个“X”表示为硬盘的Firmware版本。我们目前常见的一般都是“A0”。

我们以“WD2500JB-00EVA0”的硬盘编号作例子,我们从主编号可以知道这是一块西部数据公司出品的容量为250GB、7200转/分并且具有 8MB缓存的硬盘。从后面的附加编号我们还可以看出这是西部数据面向零售市场,单碟容量为83GB的产品。其实,我认为对一般消费者来说,买西数硬盘看前面的6位主编号就可以得知性能了,加上了后面的6位附加编号反而还会增加了难度。对于现在西数公司新出的Serial ATA150接口的硬盘,如主6位编号为“WD2500JD”,我们就可以知道他是转速为7200 RPM/分,数据缓存为8MB,用接口为Serial ATA150接口的硬盘。还有对于西数公司最高端桌面硬盘Raptor(猛禽)系列,其主编号“WD740GD”亦代表了大部分的信息,其“容量为 74GB,转速拥有10000 RPM/分,数据缓存为8MB,用Serial ATA150接口”这些信息我们也可以轻易的看出来。

五、三星(SAMSUNG)

目前三星硬盘均属SpinPoint系列,此系列又分为P和V两大类。编号标注形式为“系列型号+转速+容量+缓存+磁头数目+接口类型”。

我们亦可以简单的表示为“X,X,XXX,X,X”五部分。

第一部分的“X”表示硬盘产品系列。这里的“S”就表示为“SpinPoint”系列。

第二部分的“X”表示三星硬盘各系列不同转速的产品。

“V”表示V系列硬盘,转速为5400 RPM/分

“P”表示P系列硬盘,转速为7200 RPM/分

第三部分的三个“X”表示硬盘容量,通常有2到3位数字,其单位是GB。“080或者120”就表示为80GB或者120GB的硬盘产品,但如果缓存是8MB,它们的标志大多会变成“081或者121”。

第四部分的“X”表示硬盘磁头数,我们亦可以据“硬盘单碟容量=2×硬盘总容量/磁头数”这个公式来推算出单碟容量。

第五部分的“X”表示硬盘的接口类型。

“A”表示为E-IDE/ATA接口

“S”表示为SCSI 2接口

“U”表示为Ultra SCSI接口

“D”表示为Ultra ATA 66接口

“H”表示为Ultra ATA 100接口

“N”表示为Ultra ATA 33接口

“C”表示为Serial ATA150接口

我们拿编号为“SP1614C”的三星硬盘作例子,我们亦可以看出这是三星出品的SpinPoint家族7200转/分的P系列硬盘产品,其硬盘总容量为 160GB,缓存容量为8MB,硬盘磁头数为4,用Serial ATA150接口,硬盘单碟容量为2×160GB/4=80GB。

对于市场上各种品牌,各种型号的硬盘,他们各有各的特色技术,亦有不尽相同的性能。希望我们DIYer能看清其真相,看透其本质,能在众多产品中找到自己所需要的。

苹果序列号c开头代表什么

好。根据查询相关公开信息显示,序列号的首字母就代表着产地,其中C开头代表产地是深圳富士康,质量最好。F开头代表产地是郑州富士康,排名第三。D开头代表产地是成都富士康,排名第四。GO开头代表产地是上海和硕,质量最差。就是指机器码。序列号也称作“机器码”,为一样物品,一般为电子产品的全球唯一标识码,常用于防伪,最大的特点就是唯一。

苹果笔记本序列号c开头什么意思

苹果序列号以“c”开头代表该设备是在中国深圳富士康工厂生产的。

序列号是苹果公司为每台设备分配的唯一标识符,用于追踪产品的制造信息、保修状态、生产日期等,当序列号以“c”开头时,说明该设备的产地是中国深圳的富士康工厂,这是苹果在全球供应链中的一个重要生产基地。

苹果序列号通常由12位字母和数字组成,包含多个部分信息,如生产地点代码、生产周和年份、生产线信息等,用户可以通过在苹果官方网站或支持页面输入序列号来验证设备的真伪、查询保修状态、了解大致的生产日期等信息。

vb中怎样获得硬盘序列号?

在中国生产的。根据查询le得知,苹果笔记本序列号以“C”开头表示该设备是在中国生产的。苹果公司的产品会根据生产地点的不同而使用不同的序列号前缀,以便区分产品的来源和生产时间等信息。

电脑中的A。B。C。D。E盘分别代表的英文意思

Private Declare Function 获得硬盘序列号 Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Private Sub Form_Load()

On Error GoTo Err_Form_Load

Dim AA, 硬盘序列号, Maxlen, Sysflag As Long: Dim VolName, FsysName As String

AA = 获得硬盘序列号("c:\", VolName, 256, 硬盘序列号, Maxlen, Sysflag, FsysName, 256)

Form1.Caption = "C硬盘序列号(16制): " & Hex(硬盘序列号)

Exit Sub

Err_Form_Load:

End Sub

c#怎样获取u盘序列号

ABCD是英文字母的排列,没有任何含义。

一般情况下AB是软驱 其他的一般按照硬盘>光驱>可移动存储设备的顺序依次往下排

分区里面存储的文件类型不受限制。

首先需添加对System.Management的引用。

using?System;

using?System.Runtime.InteropServices;

using?System.Management;

namespace?Hardware

{

///?<summary>

///?HardwareInfo?的摘要说明。

///?</summary>

public?class?HardwareInfo

{

//取机器名

public?string?GetHostName()

{

return?System.NET.Dns.GetHostName();

}

//取CPU编号

public?String?GetCpuID()

{

try

{

ManagementClass?mc?=?new?ManagementClass("Win32_Processor");

ManagementObjectCollection?moc?=?mc.GetInstances();

String?strCpuID?=?null;

foreach?(ManagementObject?mo?in?moc)

{

strCpuID?=?mo.Properties["ProcessorId"].Value.ToString();

break;

}

return?strCpuID;

}

catch

{

return?"";

}

}//end?method

//取第一块硬盘编号

public?String?GetHardDiskID()

{

try

{

ManagementObjectSearcher?searcher?=?new?ManagementObjectSearcher("SELECT?*?FROM?Win32_PhysicalMedia");

String?strHardDiskID?=?null;

foreach?(ManagementObject?mo?in?searcher.Get())

{

strHardDiskID?=?mo["SerialNumber"].ToString().Trim();

break;

}

return?strHardDiskID;

}

catch

{

return?"";

}

}//end

public?enum?NCBCONST

{

NCBNAMSZ?=?16,?/*?absolute?length?of?a?net?name?*/

MAX_LANA?=?254,?/*?lana's?in?range?0?to?MAX_LANA?inclusive*/

NCBENUM?=?0x37,?/*?NCB?ENUMERATE?LANA?NUMBERS*/

NRC_GOODRET?=?0x00,?/*?good?return?*/

NCBRESET?=?0x32,?/*?NCB?RESET*/

NCBASTAT?=?0x33,?/*?NCB?ADAPTER?STATUS?*/

NUM_NAMEBUF?=?30,?/*?Number?of?NAME's?BUFFER*/

}

[StructLayout(LayoutKind.Sequential)]

public?struct?ADAPTER_STATUS

{

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?6)]

public?byte[]?adapter_address;

public?byte?rev_major;

public?byte?reserved0;

public?byte?adapter_type;

public?byte?rev_minor;

public?ushort?duration;

public?ushort?frmr_recv;

public?ushort?frmr_xmit;

public?ushort?iframe_recv_err;

public?ushort?xmit_aborts;

public?uint?xmit_success;

public?uint?recv_success;

public?ushort?iframe_xmit_err;

public?ushort?recv_buff_unail;

public?ushort?t1_timeouts;

public?ushort?ti_timeouts;

public?uint?reserved1;

public?ushort?free_ncbs;

public?ushort?max_cfg_ncbs;

public?ushort?max_ncbs;

public?ushort?xmit_buf_unail;

public?ushort?max_dgram_size;

public?ushort?pending_sess;

public?ushort?max_cfg_sess;

public?ushort?max_sess;

public?ushort?max_sess_pkt_size;

public?ushort?name_count;

}

[StructLayout(LayoutKind.Sequential)]

public?struct?NAME_BUFFER

{

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?(int)NCBCONST.NCBNAMSZ)]

public?byte[]?name;

public?byte?name_num;

public?byte?name_flags;

}

[StructLayout(LayoutKind.Sequential)]

public?struct?NCB

{

public?byte?ncb_command;

public?byte?ncb_retcode;

public?byte?ncb_lsn;

public?byte?ncb_num;

public?IntPtr?ncb_buffer;

public?ushort?ncb_length;

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?(int)NCBCONST.NCBNAMSZ)]

public?byte[]?ncb_callname;

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?(int)NCBCONST.NCBNAMSZ)]

public?byte[]?ncb_name;

public?byte?ncb_rto;

public?byte?ncb_sto;

public?IntPtr?ncb_post;

public?byte?ncb_lana_num;

public?byte?ncb_cmd_cplt;

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?10)]

public?byte[]?ncb_reserve;

public?IntPtr?ncb_event;

}

[StructLayout(LayoutKind.Sequential)]

public?struct?LANA_ENUM

{

public?byte?length;

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?(int)NCBCONST.MAX_LANA)]

public?byte[]?lana;

}

[StructLayout(LayoutKind.Auto)]

public?struct?ASTAT

{

public?ADAPTER_STATUS?adapt;

[MarshalAs(UnmanagedType.ByValArray,?SizeConst?=?(int)NCBCONST.NUM_NAMEBUF)]

public?NAME_BUFFER[]?NameBuff;

}

public?class?Win32API

{

[DllImport("NETAPI32.DLL")]

public?static?extern?char?Netbios(ref?NCB?ncb);

}

public?string?GetMacAddress()

{

string?addr?=?"";

try

{

int?cb;

ASTAT?adapter;

NCB?Ncb?=?new?NCB();

char?uRetCode;

LANA_ENUM?lenum;

Ncb.ncb_command?=?(byte)NCBCONST.NCBENUM;

cb?=?Marshal.SizeOf(typeof(LANA_ENUM));

Ncb.ncb_buffer?=?Marshal.AllocHGlobal(cb);

Ncb.ncb_length?=?(ushort)cb;

uRetCode?=?Win32API.Netbios(ref?Ncb);

lenum?=?(LANA_ENUM)Marshal.PtrToStructure(Ncb.ncb_buffer,?typeof(LANA_ENUM));

Marshal.FreeHGlobal(Ncb.ncb_buffer);

if?(uRetCode?!=?(short)NCBCONST.NRC_GOODRET)

return?"";

for?(int?i?=?0;?i?<?lenum.length;?i++)

{

Ncb.ncb_command?=?(byte)NCBCONST.NCBRESET;

Ncb.ncb_lana_num?=?lenum.lana[i];

uRetCode?=?Win32API.Netbios(ref?Ncb);

if?(uRetCode?!=?(short)NCBCONST.NRC_GOODRET)

return?"";

Ncb.ncb_command?=?(byte)NCBCONST.NCBASTAT;

Ncb.ncb_lana_num?=?lenum.lana[i];

Ncb.ncb_callname[0]?=?(byte)'*';

cb?=?Marshal.SizeOf(typeof(ADAPTER_STATUS))?+?Marshal.SizeOf(typeof(NAME_BUFFER))?*?(int)NCBCONST.NUM_NAMEBUF;

Ncb.ncb_buffer?=?Marshal.AllocHGlobal(cb);

Ncb.ncb_length?=?(ushort)cb;

uRetCode?=?Win32API.Netbios(ref?Ncb);

adapter.adapt?=?(ADAPTER_STATUS)Marshal.PtrToStructure(Ncb.ncb_buffer,?typeof(ADAPTER_STATUS));

Marshal.FreeHGlobal(Ncb.ncb_buffer);

if?(uRetCode?==?(short)NCBCONST.NRC_GOODRET)

{

if?(i?>?0)

addr?+=?":";

addr?=?string.Format("{0,2:X}{1,2:X}{2,2:X}{3,2:X}{4,2:X}{5,2:X}",

adapter.adapt.adapter_address[0],

adapter.adapt.adapter_address[1],

adapter.adapt.adapter_address[2],

adapter.adapt.adapter_address[3],

adapter.adapt.adapter_address[4],

adapter.adapt.adapter_address[5]);

}

}

}

catch

{?}

return?addr.Replace('?',?'0');

}

}

}

使用方法举例:

//获取硬盘序列号

Hardware.HardwareInfo?hardwareInfo?=?new?Hardware.HardwareInfo();

string?hardDiskID?=?hardwareInfo.GetHardDiskID();

System.Console.WriteLine(hardDiskID);

//获取CPU序列号

string?cpuID?=?hardwareInfo.GetCpuID();

System.Console.WriteLine(cpuID);

//获取硬盘序列号Hardware.HardwareInfo?hardwareInfo?=?new?Hardware.HardwareInfo();string?hardDiskID?=?hardwareInfo.GetHardDiskID();System.Console.WriteLine(hardDiskID);//获取CPU序列号string?cpuID?=?hardwareInfo.GetCpuID();System.Console.WriteLine(cpuID);

转自:CSDN《使用C#获取CPU及硬盘序列号的源代码》 --?songkexin