HarmonyOS获取的ipv6的值,一直为空串?

如题:HarmonyOS获取的ipv6的值,一直为空串?

阅读 497
1 个回答

通过一下方法判断address.family === 2是否成立。

getNetwork() {
  try{
    let netHandle = connection.getDefaultNetSync();
    let connectionproperties = connection.getConnectionPropertiesSync(netHandle);
    if(connectionproperties !== undefined) {
      let arr_linkAddresses = connectionproperties.linkAddresses;
      if(arr_linkAddresses !== undefined && arr_linkAddresses instanceof Array && arr_linkAddresses.length > 0) {
        for(let i = 0; i < arr_linkAddresses.length; i++ ) {
          let address: connection.NetAddress = arr_linkAddresses[i].address;
          if(address !== undefined) {
            console.warn('debug : address = ', JSON.stringify(address))
            if(address.family === 1) {
              console.warn('debug : address is ipv4')
            } else if(address.family === 2) {
              console.warn('debug : address is ipv6')
            }
          }
        }
      }
    }
  } catch (e) {
    console.error(`Get exception: ${e}`);
  }
}

日志如下:

address = {"address":"172.30.0.139","family":1,"port":0} 
09-05 15:38:31.931 58013-58013 A03D00/JSAPP xxx W debug : address is ipv4

说明目前在这个网络上family为1,只能获取ipv4的值,获取不到ipv6的值。

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