linux系统java通过jni方式获取硬盘序列号

http://blog.csdn.net/starter110/article/details/8186788

使用jni在windows下读取硬盘序列号 http://www.iflym.com/index.php/code/201109070001.html

通常做java程序的开发人员都想过想要通过某种手段来保护自己的程序。一般的方式是通过授权,采取软件授权的方式。这个时间就需要读取客户机器上的一些关键信息,比如硬盘序列号,网卡,cpu信息或者bios信息等。其中,java本身可以读取网卡信息,对于其它的机器信息读取出来则有点困难了。然而,通过其它语言,比如c++,这些信息都可以通过一定的函数将其读取出来。     本文描述了通过网上的一个读取硬盘序列号的小程序(使用c++实现),采用jni来再次引用实现,以达到首要的目的。

首先是需要下载相应的通过c++读取硬盘信息的相应代码,相应的源代码可以到此地址下载。     http://download.csdn.net/download/Fly_m/3581179     待下载完全之后,通过以下简单的方式即可以读取硬盘序列号,并返回相应的java 字符串信息。如定义的读取硬盘序列号的java本地方法为:

static native String r();
则相对应的jni的实现即为:
JNIEXPORT jstring JNICALL XXX_r
(JNIEnv *env, jclass cls) {
    DiskInfo d = DiskInfo();
    int i = d.GetDiskInfo();
    if(i != 0) {
        return env->NewStringUTF("");
    }
    return env->NewStringUTF(d.szSerialNumber);
}
以上即为完整的通过jni读取硬盘序列号的例子,完全可以在生产环境中使用。

java通过jni方式获取硬盘序列号(windows,linux)的更多相关文章

  1. delphi 获取硬盘序列号、cpu号、bios号、网卡号

    delphi 获取硬盘 序列号 function GetIdeNum: String; type TSrbIoControl = packed record HeaderLength : ULONG; ...

  2. 获取硬盘序列号的Fortran程序

    以前写了个获取硬盘序列号的fortran程序,但未经实证 program FortranDemo Use Kernel32 Implicit None Interface SUBROUTINE Get ...

  3. vc 获取 硬盘序列号 和 cpu

    vc 获取 硬盘序列号 和 cpu 唯一iD的方法?如题---------网上找来很多资料 也没找到, 要支持xp win7 32/64 系统下都能获取 硬盘序列号 和cpu ID 哪位朋友帮帮忙: ...

  4. c/c++获取硬盘序列号

    最近在接触软件注册模块,需要获取硬盘序列号来生成注册码. 硬盘序列号,英文名:Hard Disk Serial Number,该号是硬盘厂家为区别产品而设置的,是唯一的.网上搜索一下,发现获取硬盘序列 ...

  5. 在windows下获取硬盘序列号(win7 32位,Windows Server 64位测试,希望在其他平台测试,遇到问题的网友留言分享)

    #include <Windows.h> #include <stdio.h> // IOCTL控制码 // #define DFP_SEND_DRIVE_COMMAND CT ...

  6. Windows 下获取硬盘序列号

    只获取序列号 以下任意一条命令都可以: wmic diskdrive get serialnumber wmic path win32_physicalmedia get SerialNumber w ...

  7. java 利用HttpURLConnection方式获取restful格式的服务数据

    /** * @Author: * @Description:利用HttpURLConnection方式获取restful格式的服务数据 * @Date: */ private static List& ...

  8. C#获取硬盘序列号

    //创建ManagementObjectSearcher对象 ManagementObjectSearcher searcher = new ManagementObjectSearcher(&quo ...

  9. JAVA通过HTTP方式获取数据

    测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html URL数据如下图: 代码部分: package https; import ...

随机推荐

  1. LINUX 系统备份

    系统备份是系统管理工作中十分重要的一个环切,本文详细介绍了各种Linux系统的备份方法,相信对大家的日常管理工作有所帮助. 备份是一项重要的工作,但是很多人没有去做.一旦由于使用不当造成数据丢失,备份 ...

  2. 关于Servlet中重定向

    public class Red1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSer ...

  3. jQuery免费资料

     JQvery免豆.pdf       jQuery实战之仿flash跳动的按钮效果[源码]http://down.51cto.com/data/188600JQuery 1.4.2 手册简体中文版h ...

  4. Objective-C:runtime

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  5. addEventListener 用法

    addEventListener 用于注册事件处理程序,IE 中为 attachEvent,我们为什么讲 addEventListener 而不讲 attachEvent 呢?一来 attachEve ...

  6. android测试分析1

    Android测试框架,开发环境中集成的一部分,提供一个架构和强有力的工具 可以帮助测试你的应用从单元到框架的每个方面. 测试框架有这些主要特征: 1.Android测试组件基于Junit.你可以使用 ...

  7. zigbee

    IEEE802.15.4定义了两种器件:全功能器件(FFD,Full-FunctionDevice),和简化功能器件(RFD,Reduced-functionDevice) 协调器:(coordina ...

  8. Sublime Text2配置python环境

    1.下载python并安装     地址:https://www.python.org/downloads/ 2.下载Sublime Text2 并安装     地址:http://www.subli ...

  9. 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤

    常见错误:连数据库时,这句话String url = "jdbc:mysql://localhost/数据库名";数据库名可能和你建的数据库名不一样 1.安装Mysql,记住此时你 ...

  10. java连接远程服务器之manyged-ssh2 (windows和linux)

    一.所需要的jar包 需要借助Ganymed SSH的jar包:  ganymed-ssh2-262.jar 下载地址: http://www.ganymed.ethz.ch/ssh2/ API详情: ...