我正在尝试运行一个应用程序 Pharo,该应用程序需要来自运行它的主机的 Ip 的数据。一般来说,我必须打开代码以在我的 Pharo 代码中手动设置它,然后启动应用程序。是否有更好的编程方式来获取 IP 地址并自动返回此地址,而不管计算机如何?假设我将它部署到不同的计算机。
问问题
160 次
1 回答
6
我想你正在寻找NetResolverName
.
要获取您的计算机的名称:
NetNameResolver localHostName
然后,您可以将其用作 IP 地址。如果您在 Workspace 中执行:
NetNameResolver addressForName: NetNameResolver localHostName
您将获得一个本地网络地址。
就我而言: #[192 168 1 17]
编辑
您也可以通过以下方式直接查询:
NetNameResolver localAddressString
您将在哪里获得: '192 168 1 17'
注意:如果你得到 127.0.0.1
如果你得到localhost
地址 =>127.0.0.1
你可能有主机映射问题。
您可以使用 via ping "hostname"
eg进行测试,ping localhost.localdomain
这将使您得到回复127.0.0.1
。如果您有正确的设置(主机、DNS 等),您应该从您的 IP 地址获得回复。
当我将hostname
from更改localhost.localdomain
为smalltalk
然后 ping smalltalk 正确回复192.168.10.30
. 然后Pharo
产生正确的结果。
于 2018-07-12T09:51:30.060 回答