首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS - Java获取的IP地址每1分钟更改一次

问AWS - Java获取的IP地址每1分钟更改一次
EN

Stack Overflow用户
提问于 2015-04-17 17:07:40
回答 1查看 194关注 0票数 1

我运行一个Java应用程序,它提供了在线工具。该应用程序在Ubuntu下的亚马逊网络服务EC2实例上运行。有弹性IP,AWS控制台上报的外网IP和内网IP均稳定。前端访问和证书工作正常。

但是,存在与Java检测到的IP地址相关的问题。申请许可过程使用IP地址来生成主机id,并且我发现通过应用许可过程获得的IP地址是不稳定的-它每1分钟改变一次,这导致许可不匹配,因为许可与IP地址相关联。

使用下面的代码(由应用程序供应商提供),我记录了Java获得的IP地址(因为它们每分钟都在变化),它们与外部或私有IP地址完全不同。我发现它们解析到AWS服务器(可能是DNS服务器?)位于美国西海岸和美国东海岸。该实例位于欧盟西部。

代码语言:javascript
复制
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配置错误。我真的很感激在这个问题上能帮上忙。

EN

回答 1

Stack Overflow用户

发布于 2015-04-20 02:18:29

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

Java以一种相当复杂的方式获取IP地址,它使用主机名来获取IP地址。主机名指向一个已移动到亚马逊网络服务Route53上的域名。Java被返回内部亚马逊网络服务Route53的IP地址,碰巧每1分钟改变一次。将主机名更改为EC2私有DNS已经解决了该问题,并且现在可以正确地返回EC2私有IP地址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29694912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档