- 论坛徽章:
- 0
|
大家好,元旦快乐!
请问,Linux下如何生成软件注册码?
我考虑使用CPUID,但是只有部分很老的CPU才有,这个方法不靠谱。
后来考虑使用硬盘序列号,从网上找了很多代码,都无法运行成功(CentOS6.4 in vmware 9.0)。
- #include <linux/types.h>
- #include <linux/hdreg.h>
- #include <linux/fcntl.h>
-
- int main()
- {
- int fd,err,i;
-
- /* structure to get disk information and
- * returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec
- */
- struct hd_driveid hd;
- /* open the device */
- if( (fd=open("/dev/sda", O_RDONLY ) ) < 0 )
- perror("Device Open Error");
-
- /* get required info */
- if( (err = ioctl(fd,HDIO_GET_IDENTITY,&hd) ) < 0)
- perror("IOCTL err");
- else
- printf("Serial No = %s\n",hd.serial_no);
-
- return (0);
- }
复制代码 这个程序输出:IOCTL err: Invalid argument
如何获取硬盘序列号呢?或者有什么其他的生成注册码的方法?
|
|