授权问题与解决办法汇总(二)
我们曾经总结过一些关于授权的问题,今天我们来看一下绑定ip授权的问题。
问题描述
某客户的集群环境中使用了绑定ip的授权,其中一台59的机器出现问题,提示:服务器IP地址127.0.0.1与License文件中授权的IP地址不符!
集群环境中除59机器,其他正常,客户服务器均为unix系统。
授权信息:IP= 10.48.**.61;10.48.**.59;10.48.**.53;10.48.**.4
问题分析
导致这个问题的原因可能有两方面:
一是授权本身制作有问题,比如ip绑定错误或ip输入不规范。通过查看和客户确认和查看授权信息基本上排除了这两种可能;
二是客户这台59的机器和其他的不同,主要可能硬件如网卡不尽相同。这需要通过程序获取一下本机ip来做测试。
解决方法
我们使用润乾匹配授权时获取ip的方法,在59本机获取一下当前ip。java.net.InetAddress.getLocalHost().getHostAddress(),经反馈得知,结果为127.0.0.1,所以我们确认问题出在客户机上。
让客户进行了如下操作:
查看 /etc/hosts文件,里面有一条本机名和 222.xxx.xxx.xx这个 IP 对应的记录。把它注释掉,然后修改本机的主机名,又在 hosts文件中加入主机名和222. xx.xx.xx的对应,问题解决了。
总结
通过问题的解决方法,我们可以发现InetAddress.getLocalHost().getHostAddress()方法找到本机 IP的实现方法——依靠本机的机器名去查询IP 地址,和 ping `hostname` 返回的 IP地址是同一个,并不是 ipconfig 方法得到的 eth0 IP 地址。
在windows中InetAddress.getLocalHost().getHostAddress()获得的值可能是在/system32/drivers/etc/host文件中的值