我正在尝试在我的izpack安装程序中获取IP地址。我使用了${IP_ADDRESS}变量,但我得到的是本地地址"127.0.0.1“,而不是计算机的公网IP。这是预期的功能吗?这对我来说似乎很没用,但我肯定遗漏了什么。如何获取公网IP?
izpack: v5.0.3 java: 1.7.0_79 Ubuntu: 15.04
谢谢。
发布于 2015-08-24 14:57:12
看起来,${IP_ADDRESS}被认为是(来自IzPack installer源代码的一部分):
InetAddress localHost = InetAddress.getLocalHost();
IPAddress = localHost.getHostAddress();
hostname = localHost.getHostName();所以,问题是,InetAddress.getLocalHost()在大多数情况下会返回本地主机地址。
如果您需要确定您的公共ip,这并不像只获取您本地主机的地址那么简单。您必须遍历您的network interfaces,获取它们的地址,并确定您需要哪个地址。如果您不需要在业务代码中执行此操作,但您需要在安装程序中执行此操作,则这是相当常见的情况。
据我所知,可以制作自己的jar文件并在您的安装程序中使用它,也许您应该尝试制作自己的ligic,它决定了这个公共ip并从您的IzPack安装程序调用。
https://stackoverflow.com/questions/32141502
复制相似问题