lud*_*udo 3 smalltalk seaside pharo gnu-smalltalk pharo-5
我正在尝试运行一个应用程序Pharo,它需要来自运行它的主机的IP的数据.一般情况下,我必须打开代码,在我的Pharo代码中手动设置它,然后启动应用程序.是否有更好的编程方式获取IP地址并自动返回此地址而不管计算机是什么?假设我将其部署到不同的计算机上.
我想你正在寻找NetResolverName.
要获取计算机的名称:
NetNameResolver localHostName
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其用于IP地址.如果您在Workspace中执行:
NetNameResolver addressForName: NetNameResolver localHostName
Run Code Online (Sandbox Code Playgroud)
您将获得本地网络地址.
就我而言: #[192 168 1 17]
编辑
您也可以通过以下方式直接查询:
NetNameResolver localAddressString
Run Code Online (Sandbox Code Playgroud)
你会得到的地方: '192 168 1 17'
如果您正在获取localhost地址=> 127.0.0.1,则可能存在主机映射问题.
您可以使用via测试,ping "hostname"例如ping localhost.localdomain
哪些将获得您的回复127.0.0.1.如果您有正确的设置(主机,DNS等),您应该从您的IP地址获得回复.
当我将hostnamefrom 更改localhost.localdomain为smalltalkthen然后ping smalltalk正确回复192.168.10.30.然后Pharo产生正确的结果.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |