实现GetDiskInfo函数,该函数打开物理硬盘设备,并调用DoIdentify获取硬盘序列号、型号和固件版本号。 在main函数中,通过调用GetDiskInfo获取硬盘信息,并输出到控制台。 #define_CRT_SECURE_NO_WARNINGS#include<windows.h>#include<iostream>#include<winioctl.h>#include<string>constWORD IDE_ATAPI_IDENTIFY=0xA1;// 读...
#define DFP_RECEIVE_DRIVE_DATA 0x0007c088 // IDEREGS bCommandReg #define IDE_ATAPI_IDENTIFY 0xA1 #define IDE_ATA_IDENTIFY 0xEC #define IDENTIFY_BUFFER_SIZE 512 // struct to save disk dirver info typedef struct _GETVERSIONOUTPARAMS { BYTE bVersion; BYTE bRevision; BYTE bReserved; BYTE bID...
可以通过读取/sys/block/sda/device/serial这样的路径来获取硬盘序列号,其中sda是硬盘的设备名,可能会有所不同。 代码语言:txt 复制 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *fp; char path[256]; char serial[64]; // 假设硬盘设备名为sda,实际情况可能需要...
1、在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下: intioctl(intfd,unsignedlongrequest,...); ioctl的第一个参数是文件标识符,用open()函数打开设备时获取。ioctl第二个参数为用于获得指定文件描述符的标志号,获取硬盘序列号,一般指明为HDIO_GET_IDENTITY。ioctl的第三个参数为一些...
在Linux操作系统中,硬盘的设备文件通常位于/dev目录下,每个硬盘的设备文件名称遵循一定的规则,如/dev/sda、/dev/sdb等。获取硬盘序列号的方法主要是通过读取硬盘的ID信息。 在C语言中,可以使用open()函数打开硬盘设备文件,然后通过ioctl()函数和HDIO_GET_IDENTITY命令获取硬盘的ID信息。具体代码如下: ...
2.1 获取CPU序列号 2.2 获取硬盘序列号 2.3 获取网卡信息 附:源代码下载 一、前言 本文主要介绍Linux和Windows下使用C语言获取各种硬件信息,包括CPU序列号、硬盘序列号、网卡信息(包括网卡名字、IP地址、MAC地址、网卡是否插入网线等)。 二、代码实现 Linux下所需包含的头文件 #include <linux/hdreg.h> #...
typedef struct { BYTE SRB_Cmd; // ASPI command code = SC_...
读取硬盘的序列号:HDDSR=CGetHardInfo.HardDiskID '读取C盘的串号 (默认值)如果获取其他盘符的序列号则需要指明盘符如下:CGetHardInfo.HardDrive="D"HDDSR=CGetHardInfo.HardDiskID '读取D盘的串号 获得网卡的串号:NICID=CGetHardInfo.NicID 获取本机的IP地址:IPAddress=CGethardInfo...
硬盘物理序列号读取核心代码如下:// Windows NT/2000/XP下读取IDE硬盘序列号 BOOL CGetHDSerial::WinNTReadIDEHDSerial(DWORD * buffer){ BYTE IdOutCmd [sizeof (SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1];BOOL bFlag = FALSE;int drive = 0;char driveName [256];HANDLE h...
stringstrNum=getCpu()+GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号 stringstrMNum=strNum.Substring(0,24);//从生成的字符串中取出前24个字符做为机器码 returnstrMNum; } publicint[]intCode=newint[127];//存储密钥 publicint[]intNumber=newint[25];//存机器码的Ascii值 ...