是否有特定方法可以在Pharo smalltalk中获取计算机的Ip?

时间:2018-07-12 08:58:29

标签: smalltalk pharo seaside gnu-smalltalk pharo-5

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

1 个答案:

答案 0 :(得分:5)

我认为您正在搜索NetResolverName

要获取您的计算机名称:

NetNameResolver localHostName

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

NetNameResolver addressForName: NetNameResolver localHostName

您将获得一个本地网络地址。

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

修改

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

NetNameResolver localAddressString

您将在哪里得到'192 168 1 17'

注意:如果您获得的是127.0.0.1

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

当我将hostnamelocalhost.localdomain更改为smalltalk时,然后使用192.168.10.30正确ping smalltalk答复。然后Pharo会得出正确的结果。