izpack中的非本地IP-ADDRESS

时间:2015-08-21 13:25:57

标签: izpack

我正在尝试在我的izpack安装程序中获取IP地址。我使用了$ {IP_ADDRESS}变量,但我得到了本地" 127.0.0.1"地址而不是计算机的公共IP。这是预期的功能吗?这对我来说似乎没用,但我一定错过了什么。我怎样才能获得公共IP?

izpack:v5.0.3 java:1.7.0_79 Ubuntu:15.04

感谢。

1 个答案:

答案 0 :(得分:0)

看起来,$ {IP_ADDRESS}被视为(部分来自IzPack安装程序源):

InetAddress localHost = InetAddress.getLocalHost();
IPAddress = localHost.getHostAddress();
hostname = localHost.getHostName();

所以,问题是,在大多数情况下,InetAddress.getLocalHost()返回本地主机地址。

如果你需要确定你的公共IP,那就不那么容易了,就像拿到你的localhost的地址一样。您必须遍历network interfaces,获取他们的地址并确定您需要的地址。如果您不需要在业务代码中执行此操作,那么这是很常见的情况,但您需要在安装程序中使用它。

据我所知,可以制作自己的jar文件并在安装程序中使用它,也许你应该尝试制作自己的ligic,这决定了这个公共ip,并从你的IzPack安装程序调用。