【问题标题】:AWS - Java obtained IP address changes every 1 minuteAWS - Java 获取的 IP 地址每 1 分钟更改一次
【发布时间】: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


    【解决方案1】:

    这个问题现在已经解决了。

    Java获取IP地址的方式比较复杂,它使用主机名出去获取IP地址。主机名指向已移动到 AWS Route53 的域。 Java 正在返回内部 AWS Route53 IP 地址,该地址恰好每 1 分钟更改一次。将主机名更改为 EC2 私有 DNS 已解决问题,Java 现在可以正确返回 EC2 私有 IP 地址。

    【讨论】:

      猜你喜欢
      • 2015-03-18
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 2014-04-06
      • 1970-01-01
      相关资源
      最近更新 更多