2 个回答

可以使用getConnectionPropertiesSync返回结果的ConnectionProperties.linkAddresses属性获取,参考代码:

Text(this.message) 
Button('异步获取IP地址') 
  .onClick(() => { 
    connection.getDefaultNet().then((netHandle: connection.NetHandle) => { 
      connection.getConnectionProperties(netHandle).then((data: connection.ConnectionProperties) => { 
        console.info("Succeeded to get data: " + JSON.stringify(data)); 
        this.message = JSON.stringify(data.linkAddresses); 
      }) 
    }); 
  }) 
 
Button('同步获取IP地址') 
  .onClick(() => { 
    let net = connection.getDefaultNetSync() 
    try { 
      let properties = connection.getConnectionPropertiesSync(net) 
      this.message = JSON.stringify(properties.linkAddresses) 
      console.log(JSON.stringify(properties)) 
      console.log(JSON.stringify(properties.linkAddresses)) 
    } catch (err) { 
      this.message = JSON.stringify(err) 
    } 
  }) 
}

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...

需要获取NetManager的实例,这是进行网络操作的入口。通过NetManager,您可以查询当前网络的状态,包括IP地址。从网络状态中解析出IP地址。

import net from '@ohos.net.NetManager';

async function getIPAddress() {
    try {
        const networkState = await net.queryNetworkState();
        if (networkState.isConnected) {
            const ipAddress = networkState.ipAddress;
            console.log("IP Address: " + ipAddress);
        } else {
            console.log("Network is not connected.");
        }
    } catch (error) {
        console.error("Error getting network state: ", error);
    }
}

getIPAddress();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进