Есть ли конкретный способ получить Ip компьютера в Pharo smalltalk?
Я пытаюсь запустить приложение Pharo, которому требуются данные с IP-адреса хост-компьютера, на котором оно запущено. В общем, я должен открыть код, чтобы установить его вручную в моем коде Pharo, а затем запустить приложение. Существует ли лучший и программный способ получения IP-адреса и его автоматического возврата независимо от компьютера? Скажем, я развернул его на другом компьютере.
1 ответ
Я думаю, что вы ищете 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-адреса.
Когда я изменил hostname
от localhost.localdomain
в smalltalk
тогда ping smalltalk правильно отвечает 192.168.10.30
, затем Pharo
дает правильный результат.