鸿蒙Next如何获取网络IP地址

在鸿蒙Next系统中,如何通过代码获取设备的网络IP地址?需要区分WiFi和移动数据的不同连接方式吗?有没有具体的API调用示例?

2 回复

鸿蒙Next里获取IP地址?简单!调用getaddrinfogetifaddrs,就像问网卡:“兄弟,你住哪儿?”记得加网络权限,不然系统会翻白眼:“想偷窥?没门!”

更多关于鸿蒙Next如何获取网络IP地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,获取网络IP地址可以通过@ohos.net.connection模块实现。以下是具体步骤和示例代码:

步骤:

  1. 导入模块:使用import导入网络连接相关模块。
  2. 获取网络管理器:通过getDefaultNet方法获取默认网络实例。
  3. 获取连接属性:从网络实例中获取连接属性,包括IP地址。

示例代码:

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

// 获取网络管理器
let netManager = connection.getDefaultNet();

// 获取连接属性
netManager.getConnectionProperties().then((properties) => {
  let ipAddress = properties.linkAddresses[0]?.address; // 获取第一个IP地址
  console.log('IP Address:', ipAddress);
}).catch((error) => {
  console.error('Failed to get IP address:', error);
});

说明:

  • 权限:确保在module.json5中声明网络权限:
    {
      "module": {
        "requestPermissions": [
          {
            "name": "ohos.permission.GET_NETWORK_INFO"
          }
        ]
      }
    }
    
  • 异步处理getConnectionProperties返回Promise,需用then/catch处理结果或错误。
  • 多IP情况:设备可能有多个IP(如IPv4/IPv6),通过linkAddresses数组访问。

注意事项:

  • 仅适用于HarmonyOS NEXT及以上版本。
  • 实际IP可能随网络状态变化,建议在网络连接后调用。

以上方法可获取当前活跃网络的IP地址。

回到顶部