Есть ли конкретный способ получить 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 дает правильный результат.

Другие вопросы по тегам