#创作者激励#OpenHarmony如何获取网络的连接信息 原创

鸿蒙坚果派
发布于 2023-3-16 18:18
浏览
0收藏

【本文正在参加2023年第一期优质创作者激励计划】

如何获取网络的连接信息

坚果,润开鸿技术专家,InfoQ签约作者,OpenHarmony布道师,多个平台的专家博主。
主页:https://ost.51cto.com/person/posts/14830231

1.导入模块

//网络连接管理模块
import connection from '@ohos.net.connection'

2.connection.getConnectionProperties

function getConnectionProperties(netHandle: NetHandle): Promise<ConnectionProperties>;

获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。

需要权限:在module.json中配置

"requestPermissions": [

  {
    "name": "ohos.permission.GET_NETWORK_INFO"
  }
],

代码

connection.getDefaultNet().then(function (netHandle) {
  connection.getConnectionProperties(netHandle).then(function (info) {
    console.info(JSON.stringify(info))

  })
})

控制台输出

{"interfaceName":"wlan0","domains":"","mtu":0,"linkAddresses":[{"address":{"address":"192.168.43.91","family":0,"port":0},"prefixLength":24}],"routes":[{"interface":"wlan0","destination":{"address":"0.0.0.0","prefixLength":0},"gateway":{"address":"192.168.43.1","prefixLength":0},"hasGateway":true,"isDefaultRoute":false},{"interface":"wlan0","destination":{"address":"192.168.43.0","prefixLength":24},"gateway":{"address":"0.0.0.0","prefixLength":0},"hasGateway":true,"isDefaultRoute":false}],"dnses":[{"address":"192.168.43.1","family":0,"port":0},{"address":"8.8.8.8","family":0,"port":0}]}

参数说明

ConnectionProperties

网络连接信息。

  • interfaceName:网卡名称。
  • domains:所属域,默认""。
  • linkAddresses:链路信息。LinkAddress类型
  • routes:路由信息。
  • dnses:网络地址,
  • mtu最大传输单元。

LinkAddress

网络链路信息。

  • address:链路地址。NetAddress
  • prefixLength:链路地址前缀的长度。

RouteInfo

网络路由信息。

  • interface:网卡名称。
  • destination:目的地址。LinkAddress
  • gateway:网关地址。NetAddress
  • hasGateway: 是否有网关。
  • isDefaultRoute:是否为默认路由。

NetAddress

网络地址。

  • address: 地址。
  • family:IPv4 = 1,IPv6 = 2,默认IPv4。
  • port:端口,取值范围[0, 65535]。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-3-16 18:18:36修改
收藏
回复
举报
回复
    相关推荐