精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux下獲取CPUID、硬盤序列號與MAC地址

運維 系統運維
在很多系統軟件的開發中,需要使用一些系統的唯一性信息。所以,得到主機的CPUID、硬盤序列號及網卡的MAC地址,就成個一件很重要的應用。

在很多系統軟件的開發中,需要使用一些系統的唯一性信息。所以,得到主機的CPUID、硬盤序列號及網卡的MAC地址,就成個一件很重要的應用。

本人經過一番google即自己的鉆研,基本上實現了這幾個功能。需要的準備知識有:

GCC的嵌入匯編,具體的GCC嵌入匯編知識,請參考相關手冊

ioctl系統調用,具體的調用方法,請查看手冊頁

獲取CPUID

按照網上提供的說明,CPUID并不是所有的Intel CPU都支持的。如果支持,匯編調用為:eax置0000_0003,調用cpuid。

以下為實現代碼(在我的CPU上,并沒有得到):

#define cpuid(in,a,b,c,d) asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in));

static int

getcpuid (char *id, size_t max)

{

int i;

unsigned long li, maxi, maxei, ebx, ecx, edx, unused;

cpuid (0, maxi, unused, unused, unused);

maxi &= 0xffff;

if (maxi < 3)

{

return -1;

}

cpuid (3, eax, ebx, ecx, edx);

snprintf (id, max, "%08lx %08lx %08lx %08lx", eax, ebx, ecx, edx);

fprintf (stdout, "get cpu id: %s\n", id);

return 0;

}

獲取硬盤序列號

這個的實現,采用的是讀取/etc/mtab文件,找到/(即根目錄)掛載的設備文件,然后打開它,再用系統調用ioctl來實現的。

ioctl第二個參數為HDIO_GET_IDENTITY, 獲得指定文件描述符的標志號

ioctl的第三個參數為struct hd_driveid ,在linux/hdreg.h中,struct hd_driveid的聲明有

struct hd_driveid {

unsigned short config; / lots of obsolete bit flags */

unsigned short cyls; /* Obsolete, "physical" cyls */

unsigned short reserved2; /* reserved (word 2) */

unsigned short heads; /* Obsolete, "physical" heads */

unsigned short track_bytes; /* unformatted bytes per track */

unsigned short sector_bytes; /* unformatted bytes per sector */

unsigned short sectors; /* Obsolete, "physical" sectors per track */

unsigned short vendor0; /* vendor unique */

unsigned short vendor1; /* vendor unique */

unsigned short vendor2; /* Retired vendor unique */

unsigned char serial_no[20]; /* 0 = not_specified */

unsigned short buf_type; /* Retired */

unsigned short buf_size; /* Retired, 512 byte increments

* 0 = not_specified

*/

……

};

,這其中,serial_no為硬盤的序列號。如果此項為0,則為沒有提供。

#p#

思路明確了,以下為實現代碼:

static int

getdiskid (char *id, size_t max)

{

int fd;

struct hd_driveid hid;

FILE *fp;

char line[0x100], *disk, *root, *p;

fp = fopen ("/etc/mtab", "r");

if (fp == NULL)

{

fprintf (stderr, "No /etc/mtab file.\n");

return -1;

}

fd = -1;

while (fgets (line, sizeof line, fp) != NULL)

{

disk = strtok (line, " ");

if (disk == NULL)

{

continue;

}

root = strtok (NULL, " ");

if (root == NULL)

{

continue;

}

if (strcmp (root, "/") == 0)

{

for (p = disk + strlen (disk) - 1; isdigit (*p); p --)

{

*p = '\0';

}

fd = open (disk, O_RDONLY);

break;

}

}

fclose (fp);

if (fd < 0)

{

fprintf (stderr, "open hard disk device failed.\n");

return -1;

}

if (ioctl (fd, HDIO_GET_IDENTITY, &hid) < 0)

{

fprintf (stderr, "ioctl error.\n");

return -1;

}

close (fd);

snprintf (id, max, "%s", hid.serial_no);

fprintf (stdout, "get hard disk serial number: %s\n", id);

return 0;

}

獲取MAC地址

通過創建一個socket,然后bind特定的IP地址,就可以通過ioctl得到這個套按地綁定的網絡接口名稱。然后再通過網絡接口名稱,得到MAC地址。

如果ioctl的第二個參數為SIOCGIFNAME, 則獲得指定網絡接口的名稱;如果ioctl的第二個參數為SIOCGIFHWADDR,則獲得指定網絡接口的MAC地址

ioctl的第三個參數為struct ifreq ,在linux/if.h頭文件里,struct ifreq聲明如下:

struct ifreq

{

#define IFHWADDRLEN 6

union

{

char ifrn_name[IFNAMSIZ]; / if name, e.g. "en0" */

} ifr_ifrn;

union {

struct sockaddr ifru_addr;

struct sockaddr ifru_dstaddr;

struct sockaddr ifru_broadaddr;

struct sockaddr ifru_netmask;

struct sockaddr ifru_hwaddr;

short ifru_flags;

int ifru_ivalue;

int ifru_mtu;

struct ifmap ifru_map;

char ifru_slave[IFNAMSIZ]; /* Just fits the size */

char ifru_newname[IFNAMSIZ];

void * ifru_data;

struct if_settings ifru_settings;

} ifr_ifru;

}

#p#

其中,ifrn_name為網絡接口的名稱,ifr_ifru.ifru_hwaddr為網絡接口的MAC地址。

#ifndef MAX_IFINDEX

# define MAX_IFINDEX 8

#endif

static int

getmacaddr (const char *ip, char *id, size_t max)

{

int i, sockfd;

struct sockaddr_in *loc;

struct ifreq req[1];

sockfd = socket (AF_INET, SOCK_DGRAM, 0);

if (sockfd < 0)

{

fprintf (stderr, "Unable to create socket.\n");

return -1;

}

for (i = 0; i <= MAX_IFINDEX; ++ i)

{

req->ifr_ifindex = i;

if (ioctl (sockfd, SIOCGIFNAME, req) < 0)

{

fprintf (stderr, "ioctl error: %s\n", strerror (errno));

continue;

}

if (ioctl (sockfd, SIOCGIFADDR, req) < 0)

{

fprintf (stderr, "ioctl interface index [%d] error: %s\n", i, strerror (errno));

continue;

}

loc = (struct sockaddr_in *) (&(req->ifr_ifru.ifru_addr));

if (loc->sin_addr.s_addr == inet_addr (ip))

{

fprintf (stderr, "%s bind at %s.\n", ip, req->ifr_name);

break;

}

}

if (i > MAX_IFINDEX)

{

fprintf (stderr, "input IP error.\n");

close (sockfd);

return -1;

}

if (ioctl (sockfd, SIOCGIFHWADDR, req) < 0)

{

fprintf (stderr, "ioctl error: %s\n", strerror (errno));

close (sockfd);

return -1;

}

close (sockfd);

snprintf (id, max, "%02X%02X%02X%02X%02X%02X",

req->ifr_hwaddr.sa_data[0] & 0xff,

req->ifr_hwaddr.sa_data[1] & 0xff,

req->ifr_hwaddr.sa_data[2] & 0xff,

req->ifr_hwaddr.sa_data[3] & 0xff,

req->ifr_hwaddr.sa_data[4] & 0xff,

req->ifr_hwaddr.sa_data[5] & 0xff);

fprintf (stdout, "MAC address of %s: [%s].\n", req->ifr_name, id);

return 0;

}

【編輯推薦】

  1. Linux環境下雙網卡主機路由配置
  2. linux下如何破解windows密碼
  3. Linux下配置JDK和Tomcat
責任編輯:趙寧寧 來源: chinaitlab
相關推薦

2010-01-11 17:49:36

VB.NET硬盤序列號

2023-12-29 08:22:52

lsblk命令存儲

2009-09-04 08:17:04

Windows 7序列號檢查器

2009-02-09 15:51:48

Windows 7序列號免費

2011-04-19 09:25:51

2009-09-14 08:36:21

Windows 7正版序列號

2009-12-04 13:56:58

安裝Windows 7

2011-04-19 09:30:33

2011-07-11 15:20:15

MAC地址java

2019-10-12 00:03:07

MyCat數據庫分庫分表

2009-12-07 17:17:00

Windows 7操作

2011-08-30 15:19:07

2018-08-19 20:00:20

Linux命令系統硬件

2024-09-23 12:10:00

C#MAC代碼

2010-09-02 17:27:18

SQL Server安裝

2009-07-24 10:38:35

ASP.NET獲取MA

2010-01-11 18:21:22

VB.NET獲取硬盤信

2009-11-11 08:57:48

Windows 7升級序列號

2021-12-07 05:53:36

IDMWindows 運維

2009-12-09 09:52:57

ibmdwFileNet
點贊
收藏

51CTO技術棧公眾號

51精品秘密在线观看| 亚洲一区二区动漫| 91精品国产手机| 可以看毛片的网址| 国产小视频在线播放| 激情深爱一区二区| **欧美日韩vr在线| 国产一区第一页| 欧美重口另类| 欧美精品一二三四| 国产精品无码av在线播放| 伊人在线视频| 国产91在线精品| 大香伊人久久| 久久性天堂网| 欧美成人一二三| 成人黄色免费网址| 91午夜精品| 欧美日韩国产美女| 国产中文字幕在线免费观看| 欧美一区二区三区在线观看免费| 99久久99久久精品国产片果冻| 国产精品狼人色视频一区| 国产在线一二区| 国产精品99久久| 亚洲人成电影网站色| 国产又黄又嫩又滑又白| 青青草国产一区二区三区| 欧美日韩人人澡狠狠躁视频| 日本一级淫片演员| av二区在线| 久久午夜老司机| 国产一区精品视频| 国产黄色av片| 精品一区二区三区免费观看| 国产99久久精品一区二区永久免费 | 日韩电影免费观看高清完整| 成人午夜免费福利| 女人天堂av在线播放| 青青草97国产精品免费观看无弹窗版 | 77导航福利在线| 久久婷婷国产综合精品青草| 精品国产综合| 欧洲av在线播放| 国产不卡一区视频| 97在线中文字幕| 国产高清视频免费观看| 国产精品亚洲第一区在线暖暖韩国 | 国产九色精品成人porny| 国产欧美日韩最新| 中文字幕有码视频| 麻豆精品视频在线观看免费| 国产精品自拍小视频| 中文亚洲av片在线观看| 美女视频黄久久| 成人av.网址在线网站| 中文字幕一区二区三区波野结 | 91久久精品午夜一区二区| 国产男女在线观看| 成人勉费视频| 欧洲国内综合视频| 中文字幕天天干| 四虎永久精品在线| 欧美一区二区三区在| 538国产精品视频一区二区| 无码国产精品一区二区免费式直播| 精品一区二区三区四区五区 | 香蕉久久国产av一区二区| 波多野结衣中文字幕一区二区三区| 国产伦理一区二区三区| 青梅竹马是消防员在线| 日本一区二区免费在线观看视频| 亚洲午夜精品福利| av官网在线播放| 亚洲18女电影在线观看| 欧美日韩亚洲第一| 国产亚洲欧美日韩精品一区二区三区| 欧美精品 国产精品| 日本r级电影在线观看| 国产精品三p一区二区| 日韩麻豆第一页| 香蕉成人在线视频| 国精品一区二区三区| 欧美性做爰毛片| 无码人妻丰满熟妇区bbbbxxxx | 天天av天天翘天天综合网色鬼国产 | 日日夜夜精品视频天天综合网| 91精品在线麻豆| 欧美精品一区三区在线观看| 黄色av免费在线观看| 国产精品久久久久久久久搜平片 | 亚洲先锋成人| 欧洲成人在线视频| 国产美女明星三级做爰| 成人网页在线观看| 欧美影视一区二区| 宅男网站在线免费观看| 日韩欧美国产高清91| 国产成年人视频网站| 99精品国产一区二区三区2021| 日韩精品视频免费在线观看| 亚洲熟女少妇一区二区| 国产日韩亚洲| 成人美女免费网站视频| 图片区 小说区 区 亚洲五月| 国产欧美一区二区精品性色 | av在线app| 欧美性猛交xxxx久久久| 亚洲制服在线观看| 视频一区在线观看| 99精品视频一区| 91嫩草在线视频| 色wwwwww| 亚洲免费高清视频在线| 999精品网站| 国产厕拍一区| 欧美精品在线免费| 中文字幕在线观看欧美| 91女厕偷拍女厕偷拍高清| 91亚洲精品国产| 中文字幕成人| 一区二区三区动漫| caoporn国产| 成人av在线资源网| 亚洲精品天堂成人片av在线播放| 777午夜精品电影免费看| 日韩精品免费视频| 国产精品第九页| 国产电影精品久久禁18| 一区二区三区四区久久| a日韩av网址| 亚洲国产精品电影在线观看| 青草影院在线观看| 久久99国产精品久久99 | 精品久久视频| 91精品国产91久久久久久久久 | 91美女视频网站| 无码av天堂一区二区三区| 久久野战av| 亚洲精品自拍第一页| 日韩手机在线观看| 成人福利在线看| 蜜臀av色欲a片无码精品一区| 日韩免费一级| 欧美国产极速在线| 国内老熟妇对白hdxxxx| 一区二区国产盗摄色噜噜| 少妇愉情理伦片bd| 欧美视频在线观看| 国产综合欧美在线看| h片在线观看视频免费免费| 欧美一级黄色片| 久草视频在线资源| 豆国产96在线|亚洲| 福利视频免费在线观看| 精品国产午夜肉伦伦影院| 国内精品一区二区三区| 亚洲av电影一区| 一本久久a久久免费精品不卡| 成人免费毛片日本片视频| 亚洲欧美卡通另类91av| 牛人盗摄一区二区三区视频 | 亚洲一区二区三区四区视频| 在线黄色网页| 亚洲精品乱码久久久久久按摩观| 国产精品免费精品一区| 国产精品欧美一区二区三区| 日本高清免费在线视频| 欧美视频四区| 久久综合九色99| 国产成+人+综合+亚洲欧美| 日韩在线播放一区| 亚洲乱码在线观看| 欧美日韩另类在线| 亚洲色图日韩精品| 国产精品小仙女| 国产成人精品视频免费看| 欧美一区三区| 成人黄动漫网站免费| 午夜久久中文| www.久久久久| 人人妻人人澡人人爽人人欧美一区| 色网综合在线观看| 久久精品亚洲a| 不卡av在线免费观看| 一道本视频在线观看| 欧美啪啪一区| 清纯唯美一区二区三区| 9999精品免费视频| 45www国产精品网站| 777电影在线观看| 亚洲成人激情视频| 伊人色综合久久久| 亚洲成人福利片| 日本视频在线免费| 不卡欧美aaaaa| 日韩av自拍偷拍| 国产深夜精品| 日本a级片在线观看| 亚洲资源网你懂的| 99视频免费观看蜜桃视频| 性欧美freehd18| 久久久久久久久久久av| av在线播放av| 精品一区二区三区电影| 午夜精品久久久久久久第一页按摩 | 欧美日本黄视频| 成年网站在线| 国产午夜精品麻豆| 性欧美18一19性猛交| 欧美日韩精品系列| a v视频在线观看| 亚洲黄色尤物视频| 大吊一区二区三区| 久久婷婷综合激情| 最近日本中文字幕| 国产91丝袜在线播放| 在线看免费毛片| 日韩和欧美一区二区三区| 欧美一区二区三区爽大粗免费| 综合激情一区| 一区二区视频国产| 日韩在线视屏| 日韩精品另类天天更新| 麻豆一区一区三区四区| 国产经品一区二区| 国产麻豆精品| 成人综合网网址| 精品三级在线| 国产精品视频自拍| 亚洲第一影院| 日本高清久久天堂| 中文在线а√在线8| 国内精品伊人久久| 爱啪视频在线观看视频免费| 欧美激情乱人伦一区| 日本在线视频中文有码| 久久国产精品久久久久久久久久| 欧美日本高清| www.日韩欧美| 成人ww免费完整版在线观看| 日韩亚洲欧美成人| jizzjizz亚洲| 欧美激情精品久久久久久蜜臀| 污污影院在线观看| 久久久久久久国产精品视频| 24小时免费看片在线观看| 97久久精品国产| 深夜成人在线| 日本精品一区二区三区在线| 国产日韩电影| 国产精品久久久久久久久久| 91精品国产66| 成人网址在线观看| 视频欧美一区| 精品国产一区二区三区麻豆免费观看完整版| 精品国产一区二区三区成人影院| 精品一区二区三区国产| 日韩大尺度在线观看| 欧洲久久久久久| 久久神马影院| 女人色极品影院| 男人天堂欧美日韩| 尤蜜粉嫩av国产一区二区三区| 久久97超碰国产精品超碰| 久久久久无码精品| 成人午夜视频在线观看| 97人妻精品一区二区免费| 欧美国产在线观看| 国产jizz18女人高潮| 亚洲国产日产av| 久久永久免费视频| 91精品国产91热久久久做人人| 黑人精品一区二区三区| 亚洲欧美色图片| 日本中文字幕伦在线观看| 久久久久久久久久久国产| 欧美电影h版| 亚洲最大福利视频网站| 国产精品传媒| 亚洲精品成人三区| 国产精品第十页| 不要播放器的av网站| 国产麻豆欧美日韩一区| 女同毛片一区二区三区| 中文字幕一区二区三区乱码在线| 国产主播在线播放| 91国偷自产一区二区三区观看| 国产免费视频一区二区三区| 日韩精品免费在线播放| 免费a级在线播放| 97视频网站入口| 91麻豆精品一二三区在线| 蜜桃999成人看片在线观看| 亚洲乱码电影| www黄色在线| 丁香婷婷深情五月亚洲| 黄色片在线观看免费| 一区二区三区在线播放| 亚洲性猛交富婆| 日韩www在线| www红色一片_亚洲成a人片在线观看_| 奇米影视亚洲狠狠色| 91精品入口| 亚洲一卡二卡区| 久久一本综合频道| 69xxx免费视频| 亚洲精品日日夜夜| 欧美激情一区二区三区免费观看| 精品粉嫩aⅴ一区二区三区四区| 在线免费看a| 国产91精品在线播放| 久久影院资源站| 欧美在线观看黄| 久久精品国产在热久久| 日本黄色特级片| 黄色成人在线播放| 亚洲欧美强伦一区二区| 久久香蕉频线观| 亚洲精品66| 亚洲欧美日产图| 久久亚洲二区| 无码人妻aⅴ一区二区三区 | 久久久99精品免费观看| 久久久久久国产精品免费播放| 欧美精品日韩精品| lutube成人福利在线观看| 青草青草久热精品视频在线网站| 国产香蕉精品| 欧美午夜性视频| 成人午夜在线播放| 精品无码m3u8在线观看| 精品久久一区二区三区| 黄色av免费在线| 91精品美女在线| 国产精品伦理久久久久久| 国产精品久久a| 亚洲欧洲在线观看av| 91午夜交换视频| 色偷偷9999www| 精品一区二区三区视频在线播放| 中文字幕在线亚洲三区| 国产精品自在在线| 久久亚洲成人av| 欧美sm极限捆绑bd| 国产探花在线观看| 狠狠干一区二区| 狂野欧美性猛交xxxx巴西| av电影网站在线观看| 欧美婷婷六月丁香综合色| 色哟哟免费在线观看| 国产精品自拍偷拍| 亚洲综合色站| xfplay5566色资源网站| 五月天一区二区| 美女欧美视频在线观看免费 | 欧美尤物巨大精品爽| 国产a久久精品一区二区三区| 女性隐私黄www网站视频| 国产日产欧美一区| 国产又粗又长又大视频| 久久91精品国产91久久久| 动漫av一区| 国产一区二区视频免费在线观看| 中文字幕第一区| 国产成人免费看一级大黄| 91国内在线视频| 日韩精品免费一区二区在线观看 | 日韩a级大片| 日本888xxxx| 亚洲精品少妇30p| 日本黄在线观看| 国产在线一区二区三区| 激情一区二区| 国产熟女一区二区| 91精品久久久久久蜜臀| 国产高潮在线| 亚洲国产日韩综合一区| 国产成人免费av在线| 国产一级淫片a视频免费观看| 色妞欧美日韩在线| 红杏aⅴ成人免费视频| 日本va中文字幕| 亚洲专区一二三| 国产在线一二三| 999视频在线观看| 日韩一区欧美二区| 青青草偷拍视频| 伊人久久精品视频| 爱爱精品视频| 女人高潮一级片| 精品久久久久久中文字幕| 久草中文在线观看| 鲁丝片一区二区三区| 国产剧情一区在线| 波多野结衣影片| 国产69精品99久久久久久宅男| 久久网站免费观看| 西西444www无码大胆| 欧美大片日本大片免费观看|