linux下获得硬盘序列号的c源代码

本代码利用linux的hdparm命令,结合pipe管道技术巧妙的获得硬盘序列号,可方便的用于软件的加密或认证领域

 char buf[256],info[1024]={0};
 char *pos;
 int i;

 snbuf[0]=0;

 fp=popen("hdparm -i /dev/hda","r"); 

 if(fp) 

 { 

  while(fgets(buf,sizeof(buf),fp)) 

  { 

      i=strlen(info)+strlen(buf); 

      if(i>1023)break; 

     strcat(info,buf); 

  }

   pos=strcasestr(info,"SerialNo="); 

  if(pos)pos+=9; 

  i=0; 

  while(pos) 

  { 

   if((*pos<=’Z’&&*pos>=’A’) 

    ||(*pos<=’z’&&*pos>=’a’) 

    ||(*pos<=’9’&&*pos>=’0′) 

    ||(*pos==’ ‘)) 

   { 

       snbuf[i]=*pos; 

       i++; 

       if(i>buflen-10)break; 

       pos++; 

   } 

   else 

   { 

      break; 

   } 

  } 

  snbuf[i]=0; 

 } 

pclose(fp);

此条目发表在服务器, 计算机安全分类目录,贴了标签。将固定链接加入收藏夹。