【发布时间】:2015-06-24 01:14:19
【问题描述】:
我运行一个提供在线工具的 Java 应用程序。该应用程序在 Ubuntu 下的 AWS EC2 实例上运行。有弹性 IP,AWS 控制台上报的外部和私有 IP 都是稳定的。前端访问和证书工作正常。
但是,Java 检测到的 IP 地址存在一个问题。应用程序许可过程使用 IP 地址生成主机 ID,我发现应用程序许可过程获得的 IP 地址不稳定 - 每 1 分钟更改一次,这会导致许可证不匹配,因为许可证与 IP 地址相关联.
使用下面的代码(由应用程序供应商提供),我记录了 Java 获得的 IP 地址(因为它们每分钟都在变化),它们与外部或私有 IP 地址完全不同。我发现它们解析到位于美国西海岸和美国东海岸的 AWS 服务器(可能是 DNS 服务器?)。该实例位于欧盟西部。
import java.net.*;
class IPTest {
public static void main(String[] args) {
getIPAddresses();
}
public static void getIPAddresses() {
try {
InetAddress in = InetAddress.getLocalHost();
InetAddress[] all = InetAddress.getAllByName(in.getHostName());
for (int i = 0; i < all.length; i++) {
System.out.println(all[i].getHostAddress());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我不知道这是某种 AWS 问题、DHCP 问题、应用程序问题,还是 Tomcat 配置不正确。我非常感谢您对此的帮助。
【问题讨论】:
标签: java tomcat amazon-web-services amazon-ec2 ip-address