获取硬件UUID方法(windows、linux)
来源:互联网 发布:高校法学教学软件 编辑:程序博客网 时间:2024/06/01 12:23
1、命令获取uuid
2、代码生成UUID/GUID(inux & Windows)
3、参考文章
1.1、windows系统中获取设备的UUID的方法:
在命令提示符下输入wmic 再输入csproduct 或 csproduct list full1.2、Linux系统中获取设备的UUID的方法:wmic:rootcli>csproduct list fullDescription=计算机系统产品IdentifyingNumber=*****Name=*****SKUNumber=UUID=81AC7607-1E47-CB11-BC6A-8C7EF84170A7Vendor=IBMVersion=ThinkPad T42
1)# blkid /dev/sda1/dev/sda1: LABEL="/axs3" UUID="298d198d-aa60-48af-a9f4-638f8f274afa" SEC_TYPE="ext2" TYPE="ext3"2) # tune2fs -l /dev/sda1 |grep 'UUID'298d198d-aa60-48af-a9f4-638f8f274afa3)# ls -l /dev/disk/by-uuid/ |grep sda1 |awk '{print $8}'298d198d-aa60-48af-a9f4-638f8f274afa4)#scsi_id -p 0x80/0x83 -s /block/sda1 应该只对SCSI设备有效。5)# dumpe2fs /dev/sda1 |grep 'UUID'dumpe2fs 1.39 (29-May-2006)Filesystem UUID: 298d198d-aa60-48af-a9f4-638f8f274afa这个命令不建议使用,要是分区比较大,耗时还是比较长的6)# vol_id /dev/sda1 |grep 'UUID'ID_FS_UUID=298d198d-aa60-48af-a9f4-638f8f274afaID_FS_UUID_ENC=298d198d-aa60-48af-a9f4-638f8f274afa
2、代码生成UUID/GUID(inux & Windows)
请见如下相关文章:
boost uuid: http://blog.csdn.net/ghlfllz/article/details/16881179
uuid in linux vs uuid in window[Parser]: http://http//blog.csdn.net/ghlfllz/article/details/6876181
各种OS中生成UUID的方法: http://linfan.info/blog/2012/04/20/uuid/
GUID是微软对Distributed coumputing environment (DCE) universally unique identifier 的实现,而在Linux下则称作UUID。
通用的GUID的结构如下typedef struct _GUID {DWORD Data1;WORD Data2;WORD Data3;BYTE Data4[8];} GUID;举一个例子:
假设一个GUID的格式是这样的 6B29FC40-CA47-1067-B31D-00DD010662DA
其中Data1 是32位,可以看做8个四位十六进制数,对应于上面的6B29FC40
其中Data2 是16位,可以看做4个四位十六进制数,对应于上面的CA47
其中Data3 是16位,可以看做4个四位十六进制数,对应于上面的1067
其中Data4 比较特殊,是8个字节也就可以看做16个四位十六进制数
取其Data4[0],Data4[1]来组成4个四位十六进制数,对应于上面的B31D
取其Data4[2],Data4[3]来组成4个四位十六进制数,对应于上面的00DD
取其Data4[4],Data4[5]来组成4个四位十六进制数,对应于上面的0106
取其Data4[6],Data4[7]来组成4个四位十六进制数,对应于上面的62DA
*注意:四位十六进制数对应一个GUID字符。
具体代码:#include <string>#include <stdio.h>#include <iostream>using namespace std;#ifdef WIN32#include <objbase.h>#else#include <uuid/uuid.h>#endifGUID CreateGuid(){ GUID guid;#ifdef WIN32 CoCreateGuid(&guid);#else uuid_generate(reinterpret_cast<unsigned char *>(&guid));#endif return guid;}std::string GuidToString(const GUID &guid){ char buf[64] = {0};#ifdef __GNUC__ snprintf(#else // MSVC _snprintf_s(#endif buf, sizeof(buf), "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]); return std::string(buf);}请注意:
windows下需要引用 ole32.lib
在linux下编译时需要链接uuid库(-luuid)
3、参考文章
硬盘分区的UUID(推荐先看该文章)
http://blog.csdn.net/smstong/article/details/46417213
windows 7/2008 查看uuid
http://blog.sina.com.cn/s/blog_483180590100zhn5.html
设备的UUID详解
http://www.51testing.com/html/38/225738-241247.html
Linux & Windows上生成UUID/GUID
http://blog.csdn.net/ghlfllz/article/details/17128393
UUID详解
http://blog.chinaunix.net/uid-26495963-id-3150576.html
0 0
- 获取硬件UUID方法(windows、linux)
- 获取uuid的方法
- 获取UUID方法
- linux 磁盘uuid获取
- shell获取Linux主机信息(mac地址,处理器,主板,uuid,硬盘)的方法
- Windows获取分区的UUID
- IOS 获取uuid的方法
- windows phone 获取硬件信息的相关方法
- 获取linux硬件信息
- Linux磁盘分区UUID的获取及其UUID的作用
- Linux磁盘分区UUID的获取及其UUID的作用
- Linux磁盘分区UUID的获取及其UUID的作用
- Linux磁盘分区UUID的获取及其UUID的作用
- Linux磁盘分区UUID的获取及其UUID的作用
- Windows下硬件信息获取
- IOS获取设备UUID的方法
- Linux硬件监控方法
- 【VMware】VMware linux虚拟机无法获取uuid
- 线性表的线性存储及基本操作
- Leetcode 4 Median of Two Sorted Arrays Java
- ActiveRecord 验证及回调函数callback
- 文本纠错项目一些问题
- yum安装Tomcat
- 获取硬件UUID方法(windows、linux)
- Android多线程断点下载
- 开始学习quick 3.5注意
- 简单的AT NEW 和 COLLECT的实现方式
- 关于IMCart开源商城系统
- DWZ的ajaxTodo链接的浏览器不兼容问
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- HDOJ 题目3848 CC On The Tree(BFS)
- Java-html代码和特殊字符转义