对于我们的Java应用程序,我们正在考虑为我们遇到大量许可证侵权的某些国家/地区强化我们的许可条件和相关代码。因此,我们想要找出真正的用户语言和用户所在国家/地区。我知道,您可以查询系统属性user.language
和user.country
,但是在使用例如Java应用程序启动Java应用程序时,这些属性很容易被伪造。 -Duser.language=en
。有没有办法检测这些属性的原始未更改值?或者是否有其他API为我们提供了真正的设置?
注意:
解决方案应该只需要很少的计算工作量而且不需要互联网连接
我们不是在寻找一个非常安全的解决方案,但它也不应该太容易伪造(比如系统属性)。
答案 0 :(得分:7)
甚至不要尝试。您正试图在技术层面解决法律问题。我曾经使用过一台Linux机器,其中不同的用户拥有不同的声明语言和时区,并且仍然使用" C"语言和UTC时区。
根据我的经验,此类控件可能会惹恼那些碰巧使用非标准配置的善意用户,但不能阻止某人故意提供错误的信息。
所以我的建议是:
它可以节省您的热线电话数量。