HarmonyOS鸿蒙NEXT应用开发如何使用网络连接管理模块获取网络IP地址?
HarmonyOS鸿蒙NEXT应用开发如何使用网络连接管理模块获取网络IP地址? 如何使用@ohos.net.connection模块的getConnectionPropertiesSync接口获取网络的IP地址?
3 回复
参考文档:获取网络IP地址
更多关于HarmonyOS鸿蒙NEXT应用开发如何使用网络连接管理模块获取网络IP地址?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS NEXT中,使用@ohos.net.connection模块的getDefaultNet()方法获取默认网络连接,再通过connection.getAddresses()获取IP地址列表。示例代码:
import { connection } from '@ohos.net.connection';
let netCap = {
bearerTypes: [connection.BearerType.BEARER_WIFI]
};
let netSpecifier = {
netCapabilities: netCap
};
connection.getDefaultNet(netSpecifier).then(netHandle => {
netHandle.getAddresses().then(addresses => {
console.log('IP addresses:', addresses);
});
});
需在module.json5中声明ohos.permission.GET_NETWORK_INFO权限。
在HarmonyOS NEXT中,可以通过@ohos.net.connection模块的getConnectionPropertiesSync接口获取网络连接属性,包括IP地址。以下是具体实现步骤:
-
导入模块:
import { connection } from '[@kit](/user/kit).NetworkKit'; -
获取网络连接属性:
let netHandle = connection.getDefaultNetSync(); let connectionProperties = netHandle.getConnectionPropertiesSync(); -
提取IP地址:
connectionProperties对象包含linkAddresses数组,其中每个元素包含address字段,即IP地址:let ipAddresses = connectionProperties.linkAddresses.map(addr => addr.address);
完整示例代码:
import { connection } from '[@kit](/user/kit).NetworkKit';
try {
let netHandle = connection.getDefaultNetSync();
let connectionProperties = netHandle.getConnectionPropertiesSync();
if (connectionProperties.linkAddresses) {
connectionProperties.linkAddresses.forEach(addr => {
console.log('IP Address: ' + addr.address);
});
}
} catch (err) {
console.error('Failed to get connection properties: ' + JSON.stringify(err));
}
注意事项:
- 需要申请
ohos.permission.GET_NETWORK_INFO权限 - 此方法获取的是设备在当前默认网络连接中的IP地址
- 确保设备已连接到网络,否则可能获取失败

