#include<iostream>#include<string>#include<sstream>#include<iomanip>#include<Windows.h>#include<iphlpapi.h>// 包含这个头文件以获取 PIP_ADAPTER_INFO#include<intrin.h>// 包含这个头文件以使用 __cpuid#pragmacomment(lib,"IPHLPAPI.lib")// 链接到IPHLPAPI.lib库// Function to get CPU serial number
std::string GetCPUSerialNumber(){std::string result;int cpuInfo[4]={-1};__cpuid(cpuInfo,1);unsignedint lowPart = cpuInfo[3];unsignedint highPart = cpuInfo[0];std::stringstream stream;stream << std::hex << highPart << std::hex << lowPart;result = stream.str();return result;}// Function to get hard disk serial number
std::string GetHardDiskSerialNumber(){std::string result;DWORD dwVolumeSerialNumber;GetVolumeInformationA("C:\\",NULL,0,&dwVolumeSerialNumber,NULL,NULL,NULL,0);std::stringstream stream;stream << std::hex << std::setw(8)<< std::setfill('0')<< dwVolumeSerialNumber;result = stream.str();return result;}// Function to get MAC address of the first network adapter
std::string GetMACAddress(){std::string result;PIP_ADAPTER_INFO pAdapterInfo;ULONG ulOutBufLen =sizeof(PIP_ADAPTER_INFO);pAdapterInfo =(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));if(pAdapterInfo !=NULL){if(GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)== ERROR_BUFFER_OVERFLOW){free(pAdapterInfo);pAdapterInfo =(IP_ADAPTER_INFO*)malloc(ulOutBufLen);}if(GetAdaptersInfo(pAdapterInfo,&ulOutBufLen)== NO_ERROR){result = pAdapterInfo->Address[0];}free(pAdapterInfo);}return result;}// Function to generate unique machine ID
std::string GenerateMachineID(){std::string cpuSerial =GetCPUSerialNumber();std::string diskSerial =GetHardDiskSerialNumber();std::string macAddress =GetMACAddress();std::string machineID = cpuSerial + diskSerial + macAddress;return machineID;}intmain(){std::string machineID =GenerateMachineID();std::cout <<"Machine ID: "<< machineID << std::endl;return0;}
通过代码拼版: 所有代码如下:
from si_fab import all as pdk
from ipkiss3 import all as i3class Design1(i3.GDSCell):def _default_filename(self):return "Ring_Test.gds"def _default_name(self):return "Design1"class Des…