`
pioneer21th
  • 浏览: 25553 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

怎样用Java获得Server的Mac地址(关于添加license)?

阅读更多
大家好,最近做项目要求License保护,想来想去,没有其他的好办法,就用Truelicense绑定Mac地址的办法了(不知道有没有更好的办法,同志们指点)。但是Java 是没有获取Mac地址的API的。在网上查了一下,发现有办法获取,就是让Java执行nbstat -a IP命令,然后获取stream解析。但是又据说Unix不支持此命令,小弟我现在没有Unix环境,不能验证。大家谁做过类似的项目的,比如添加license,获取mac地址等等的,都说一下吧,谢谢。
分享到:
评论
14 楼 oma1989 2012-05-24  
获取Mac请参考:http://oma1989.iteye.com/admin/blogs/1335788
13 楼 pioneer21th 2007-01-22  
是的,楼上的注意真的很不错。不过现实情况下是用作服务器的一般都是不连Internet的好像。

还好,客户的服务器OS是windows,现在就将就着用好了,如果有了其他类型的OS,再修改代码吧。有哪位兄弟方便了给验证一下nbstat在Unix下能否执行?
12 楼 smilesmith 2007-01-20  
floating 写道
在unix下面修改一个主机的mac是非常容易的事情,比如在aix上用smit就可以随意的修改mac地址。用nbstat -a访问到的mac地址就是这个值,而不是aix机器上网卡真实的mac地址。我建议lz可以采用联网认证的方式,即安装系统的时候需要能够访问到internet上的认证服务器。(或者能够访问到lz自己公司的销售工程师的笔记本上的认证服务器),而同一个license只能安装一次。如果客户需要合法再次安装这个软件,我们可以给他一个新的lisence。

这个方法还不错.
windows的mac也是很好改的.
可以用软件狗,每次运行时都读取软件狗的信息.
11 楼 kdekid 2007-01-19  
其实,最有用的就是法律手段。可惜遵守法律的人比较少。
10 楼 floating 2007-01-19  
在unix下面修改一个主机的mac是非常容易的事情,比如在aix上用smit就可以随意的修改mac地址。用nbstat -a访问到的mac地址就是这个值,而不是aix机器上网卡真实的mac地址。我建议lz可以采用联网认证的方式,即安装系统的时候需要能够访问到internet上的认证服务器。(或者能够访问到lz自己公司的销售工程师的笔记本上的认证服务器),而同一个license只能安装一次。如果客户需要合法再次安装这个软件,我们可以给他一个新的lisence。
9 楼 ggyy 2007-01-19  
用C实现Jini,然后用Java去调用不就行了.需要部署的系统就实现一个.调用Shell虽然简单,感觉和Java配合得不好.
8 楼 ahuaxuan 2007-01-19  
我曾经也做过,不过因为客户的机器是windows,所以开始我用jni来获取到了mac地址,后来又通过command来从得到了包括ip和mac地址的一个字符串,然后再解析字符串得到mac地址。关于truelicense我到没有用过,当时自己写了一些小算法来生成和解析license,然后再混淆,如果混淆器够强,在没有源代吗的情况下要破解还是不容易的。
7 楼 KayMO 2007-01-18  
pioneer21th 写道
大家好,最近做项目要求License保护,想来想去,没有其他的好办法,就用Truelicense绑定Mac地址的办法了(不知道有没有更好的办法,同志们指点)。但是Java 是没有获取Mac地址的API的。在网上查了一下,发现有办法获取,就是让Java执行nbstat -a IP命令,然后获取stream解析。但是又据说Unix不支持此命令,小弟我现在没有Unix环境,不能验证。大家谁做过类似的项目的,比如添加license,获取mac地址等等的,都说一下吧,谢谢。

unix不支持么?
记得很久以前写过一个用Runtime执行command获取Stream的东东,
在solaris下抓grep信息
6 楼 pioneer21th 2007-01-18  
kdekid 写道
用公私密钥系统,你用私钥生成license,在客户端用公钥检查这个license的合法性。然后用混淆器把你发布的包加密。


是的,我们准备采用的TrueLicense正是基于这种思想。但是,生成的License如果不和某种东西绑定,是不能保护你的系统拷贝的,即你授权的用户可以拿着这个license再免费的送给别人使用,现在一些共享软件不是也遇到这个问题了吗?
5 楼 kdekid 2007-01-18  
pioneer21th 写道
Lucas Lee 写道
这种不标准的做法,也只好硬做了。
你可以根据System.getProperties()获得当前系统是Unix还是Windows,然后分别使用各自的shell命令好了。


那么,有解决此类问题(包括license问题)的标准做法吗?

用公私密钥系统,你用私钥生成license,在客户端用公钥检查这个license的合法性。然后用混淆器把你发布的包加密。
4 楼 pioneer21th 2007-01-18  
adamzhao 写道


这??
控制Ip范围不可以吗? 将来怎么再改哦


对于一个产品来说,你怎么能知道和要求用户的Server用什么IP地址呢?
况且,一般情况下,Server多数都用内网IP,不光是IP范围一样,甚至连IP地址都可能一样。
3 楼 pioneer21th 2007-01-18  
Lucas Lee 写道
这种不标准的做法,也只好硬做了。
你可以根据System.getProperties()获得当前系统是Unix还是Windows,然后分别使用各自的shell命令好了。


那么,有解决此类问题(包括license问题)的标准做法吗?
2 楼 adamzhao 2007-01-18  
pioneer21th 写道
大家好,最近做项目要求License保护,想来想去,没有其他的好办法,就用Truelicense绑定Mac地址的办法了(不知道有没有更好的办法,同志们指点)。但是Java 是没有获取Mac地址的API的。在网上查了一下,发现有办法获取,就是让Java执行nbstat -a IP命令,然后获取stream解析。但是又据说Unix不支持此命令,小弟我现在没有Unix环境,不能验证。大家谁做过类似的项目的,比如添加license,获取mac地址等等的,都说一下吧,谢谢。


这??
控制Ip范围不可以吗? 将来怎么再改哦
1 楼 LucasLee 2007-01-18  
这种不标准的做法,也只好硬做了。
你可以根据System.getProperties()获得当前系统是Unix还是Windows,然后分别使用各自的shell命令好了。

相关推荐

Global site tag (gtag.js) - Google Analytics