我正在尝试运行一个应用程序Pharo,该应用程序需要运行它的主机的Ip中的数据。通常,我必须打开代码以在Pharo代码中手动进行设置,然后启动应用程序。是否有更好的编程方式来获取IP地址并自动返回该地址,而不管计算机是什么?假设我将其部署到另一台计算机上。
答案 0 :(得分:5)
我认为您正在搜索NetResolverName
。
要获取您的计算机名称:
NetNameResolver localHostName
然后您可以将其用作IP地址。如果您在工作区中执行:
NetNameResolver addressForName: NetNameResolver localHostName
您将获得一个本地网络地址。
就我而言:#[192 168 1 17]
修改
您也可以通过以下方式直接查询它:
NetNameResolver localAddressString
您将在哪里得到'192 168 1 17'
如果您获得localhost
地址=> 127.0.0.1
,则可能是主机映射存在问题。
您可以通过ping "hostname"
进行测试,例如ping localhost.localdomain
这将使您得到127.0.0.1
的答复。如果设置正确(主机,DNS等),则应该从IP地址获得答复。
当我将hostname
从localhost.localdomain
更改为smalltalk
时,然后使用192.168.10.30
正确ping smalltalk答复。然后Pharo
会得出正确的结果。