在Pharo smalltalk中是否有特定的方式获得计算机的Ip?

在Pharo smalltalk中是否有特定的方式获得计算机的Ip?,smalltalk,pharo,seaside,gnu-smalltalk,pharo-5,Smalltalk,Pharo,Seaside,Gnu Smalltalk,Pharo 5,我正在尝试运行一个Pharo应用程序,该应用程序需要来自运行它的主机的Ip的数据。一般来说,我必须打开代码,在Pharo代码中手动设置,然后启动应用程序。是否有更好的编程方式获取IP地址并自动返回此地址,而不考虑计算机?假设我将其部署到不同的计算机。我认为您正在搜索NetResolverName 要获取计算机的名称,请执行以下操作: NetNameResolver localHostName 然后您可以将其用作IP地址。如果在工作区中执行: NetNameResolver addressFor

我正在尝试运行一个Pharo应用程序,该应用程序需要来自运行它的主机的Ip的数据。一般来说,我必须打开代码,在Pharo代码中手动设置,然后启动应用程序。是否有更好的编程方式获取IP地址并自动返回此地址,而不考虑计算机?假设我将其部署到不同的计算机。

我认为您正在搜索
NetResolverName

要获取计算机的名称,请执行以下操作:

NetNameResolver localHostName
然后您可以将其用作IP地址。如果在工作区中执行:

NetNameResolver addressForName: NetNameResolver localHostName
您将获得一个本地网络地址

就我而言:
#[192 168 1 17]

编辑

您也可以通过以下方式直接查询:

NetNameResolver localAddressString
您将获得以下信息:
'192 168 1 17'

注意:如果您得到127.0.0.1 如果您获得的是
localhost
address=>
127.0.0.1
,则可能存在主机映射问题。
您可以通过ping“hostname”进行测试,例如ping localhost.localdomain 您将从
127.0.0.1
获得回复。如果您有正确的设置(主机、DNS等),您应该从您的IP地址获得回复


当我将
hostname
localhost.localdomain
更改为
smalltalk
时,ping smalltalk将正确回复
192.168.10.30
。然后,
Pharo
生成正确的结果。

这样我就得到了环回地址127.0.0.1。相反,我需要像您这样的私有Ip。@ludo
netnamesolver localHostName
为您返回了什么?它返回了一个带有计算机名称的ByteString。@ludo您可以发布实际名称吗?这是计算机的命名方式:mylinuxpress当您满意答案时,请不要忘记标记您回答的问题!要了解更多信息,请参阅没有“ip地址”这样的东西。计算机可以有多个网络连接(wifi、有线),每个网络连接都有自己的地址。