本篇文章属于《518抽奖软件开发日志》系列文章的一部分。
我在开发《518抽奖软件》(www.518cj.net)的时候,在软件的注册部分,需要获得硬盘的序列号(ID/机器码)。在网上找了一些代码,很多不好用,最后选了下面的一个,并经过自己的优化测试。
MasterHardDiskSerial mhds;
mhds.getHardDriveComputerID();
char* p = mhds.m_cszHardDriveSerialNumber;
hashcode = Tfuns::ELFHash((unsigned char*)p, strlen(p));
unsigned int diskid = hashcode % 1000;
MasterHardDiskSerial 这个类的源码,可以到github搜索得到,路径如下
https://github.com/haephrati/get-hardware-id/tree/master/GetMacAddress_by_Michael_Haephrati
其中的HardDriveSerialNumer.h、HardDriveSerialNumer.cpp两个文件。
获得的序列号可能很长的,为了便于采用先hash到一个整数,然后取整数的后四位!