1# @ohos.net.ethernet (以太网连接管理) 2 3以太网连接管理主要提供有线网络能力,提供设置有线网络的IP地址,子网掩码,网关,DNS等信息 4 5> **说明:** 6> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8## 导入模块 9 10```js 11import ethernet from '@ohos.net.ethernet' 12``` 13 14## ethernet.setIfaceConfig 15 16setIfaceConfig(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback\<void>): void 17 18设置网络接口配置信息,使用callback方式作为异步方法。 19 20**系统接口**:此接口为系统接口。 21 22**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 23 24**系统能力**:SystemCapability.Communication.NetManager.Ethernet 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| -------- | ------------------------------------------------- | ---- | ------------------------------------------ | 30| iface | string | 是 | 网络接口名 | 31| ic | [InterfaceConfiguration](#interfaceconfiguration) | 是 | 要设置的网络接口配置信息 | 32| callback | AsyncCallback\<void> | 是 | 回调函数,成功无返回,失败返回对应错误码。 | 33 34**错误码:** 35 36| 错误码ID | 错误信息 | 37| ------- | ----------------------------------------| 38| 201 | Permission denied. | 39| 401 | Parameter error. | 40| 2200001 | Invalid parameter value. | 41| 2200002 | Operation failed. Cannot connect to service.| 42| 2200003 | System internal error. | 43| 2201005 | The device information does not exist. | 44| 2201006 | Device disconnected. | 45| 2201007 | Failed to write the user configuration. | 46 47**示例:** 48 49```js 50ethernet.setIfaceConfig("eth0", { 51 mode: 0, 52 ipAddr: "192.168.xx.xxx", 53 route: "192.168.xx.xxx", 54 gateway: "192.168.xx.xxx", 55 netMask: "255.255.255.0", 56 dnsServers: "1.1.1.1" 57}, (error) => { 58 if (error) { 59 console.log("setIfaceConfig callback error = " + JSON.stringify(error)); 60 } else { 61 console.log("setIfaceConfig callback ok "); 62 } 63}); 64``` 65 66## ethernet.setIfaceConfig 67 68setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\<void> 69 70设置网络接口配置信息,使用Promise方式作为异步方法。 71 72**系统接口**:此接口为系统接口。 73 74**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL 75 76**系统能力**:SystemCapability.Communication.NetManager.Ethernet 77 78**参数:** 79 80| 参数名 | 类型 | 必填 | 说明 | 81| ------ | ------------------------------------------------- | ---- | ------------------------ | 82| iface | string | 是 | 接口名 | 83| ic | [InterfaceConfiguration](#interfaceconfiguration) | 是 | 要设置的网络接口配置信息 | 84 85**返回值:** 86 87| 类型 | 说明 | 88| ------------------- | ----------------------------------------------------------- | 89| Promise\<void> | 以Promise形式返回执行结果。成功无返回,失败返回对应错误码。 | 90 91**错误码:** 92 93| 错误码ID | 错误信息 | 94| ------- | ----------------------------------------| 95| 201 | Permission denied. | 96| 401 | Parameter error. | 97| 2200001 | Invalid parameter value. | 98| 2200002 | Operation failed. Cannot connect to service.| 99| 2200003 | System internal error. | 100| 2201005 | The device information does not exist. | 101| 2201006 | Device disconnected. | 102| 2201007 | Failed to write the user configuration. | 103 104**示例:** 105 106```js 107ethernet.setIfaceConfig("eth0", { 108 mode: 0, 109 ipAddr: "192.168.xx.xxx", 110 route: "192.168.xx.xxx", 111 gateway: "192.168.xx.xxx", 112 netMask: "255.255.255.0", 113 dnsServers: "1.1.1.1" 114}).then(() => { 115 console.log("setIfaceConfig promise ok "); 116}).catch(error => { 117 console.log("setIfaceConfig promise error = " + JSON.stringify(error)); 118}); 119``` 120 121## ethernet.getIfaceConfig 122 123getIfaceConfig(iface: string, callback: AsyncCallback\<InterfaceConfiguration>): void 124 125获取指定网络接口信息,使用callback方式作为异步方法。 126 127**系统接口**:此接口为系统接口。 128 129**需要权限**:ohos.permission.GET_NETWORK_INFO 130 131**系统能力**:SystemCapability.Communication.NetManager.Ethernet 132 133**参数:** 134 135| 参数名 | 类型 | 必填 | 说明 | 136| -------- | ----------------------------------------------- | ----- | ------------ | 137| iface | string | 是 | 指定网络接口 | 138| callback | AsyncCallback\<[InterfaceConfiguration](#interfaceconfiguration)> | 是 | 回调函数,返回指定网络接口信息 | 139 140**错误码:** 141 142| 错误码ID | 错误信息 | 143| ------- | ----------------------------------------| 144| 201 | Permission denied. | 145| 401 | Parameter error. | 146| 2200001 | Invalid parameter value. | 147| 2200002 | Operation failed. Cannot connect to service.| 148| 2200003 | System internal error. | 149| 2201005 | The device information does not exist. | 150 151**示例:** 152 153```js 154ethernet.getIfaceConfig("eth0", (error, value) => { 155 if (error) { 156 console.log("getIfaceConfig callback error = " + JSON.stringify(error)); 157 } else { 158 console.log("getIfaceConfig callback mode = " + JSON.stringify(value.mode)); 159 console.log("getIfaceConfig callback ipAddr = " + JSON.stringify(value.ipAddr)); 160 console.log("getIfaceConfig callback route = " + JSON.stringify(value.route)); 161 console.log("getIfaceConfig callback gateway = " + JSON.stringify(value.gateway)); 162 console.log("getIfaceConfig callback netMask = " + JSON.stringify(value.netMask)); 163 console.log("getIfaceConfig callback dnsServers = " + JSON.stringify(value.dnsServers)); 164 } 165}); 166``` 167 168## ethernet.getIfaceConfig 169 170getIfaceConfig(iface: string): Promise\<InterfaceConfiguration> 171 172获取指定网络接口信息,使用Promise方式作为异步方法。 173 174**系统接口**:此接口为系统接口。 175 176**需要权限**:ohos.permission.GET_NETWORK_INFO 177 178**系统能力**:SystemCapability.Communication.NetManager.Ethernet 179 180**参数:** 181 182| 参数名 | 类型 | 必填 | 说明 | 183| -------- | --------------------------------------- | ---- | ------------ | 184| iface | string | 是 | 指定网络接口 | 185 186**返回值:** 187 188| 类型 | 说明 | 189| --------------------------------- | ---------------------------------- | 190| Promise\<[InterfaceConfiguration](#interfaceconfiguration)> | 以Promise形式返回接口信息。 | 191 192**错误码:** 193 194| 错误码ID | 错误信息 | 195| ------- | ----------------------------------------| 196| 201 | Permission denied. | 197| 401 | Parameter error. | 198| 2200001 | Invalid parameter value. | 199| 2200002 | Operation failed. Cannot connect to service.| 200| 2200003 | System internal error. | 201| 2201005 | The device information does not exist. | 202 203**示例:** 204 205```js 206ethernet.getIfaceConfig("eth0").then((data) => { 207 console.log("getIfaceConfig promise mode = " + JSON.stringify(data.mode)); 208 console.log("getIfaceConfig promise ipAddr = " + JSON.stringify(data.ipAddr)); 209 console.log("getIfaceConfig promise route = " + JSON.stringify(data.route)); 210 console.log("getIfaceConfig promise gateway = " + JSON.stringify(data.gateway)); 211 console.log("getIfaceConfig promise netMask = " + JSON.stringify(data.netMask)); 212 console.log("getIfaceConfig promise dnsServers = " + JSON.stringify(data.dnsServers)); 213}).catch(error => { 214 console.log("getIfaceConfig promise error = " + JSON.stringify(error)); 215}); 216``` 217 218## ethernet.isIfaceActive 219 220isIfaceActive(iface: string, callback: AsyncCallback\<number>): void 221 222判断接口是否已激活,使用callback方式作为异步方法。 223 224**系统接口**:此接口为系统接口。 225 226**需要权限**:ohos.permission.GET_NETWORK_INFO 227 228**系统能力**:SystemCapability.Communication.NetManager.Ethernet 229 230**参数:** 231 232| 参数名 | 类型 | 必填 | 说明 | 233| -------- | --------------------------- | ---- | -------------------------------------------------- | 234| iface | string | 是 | 接口名。为空时代表查询是否存在激活接口 | 235| callback | AsyncCallback\<number> | 是 | 回调函数,已激活:1,未激活:0,其他为获取失败错误码。 | 236 237**错误码:** 238 239| 错误码ID | 错误信息 | 240| ------- | ----------------------------------------| 241| 201 | Permission denied. | 242| 401 | Parameter error. | 243| 2200001 | Invalid parameter value. | 244| 2200002 | Operation failed. Cannot connect to service.| 245| 2200003 | System internal error. | 246| 2201005 | The device information does not exist. | 247 248**示例:** 249 250```js 251ethernet.isIfaceActive("eth0", (error, value) => { 252 if (error) { 253 console.log("whether2Activate callback error = " + JSON.stringify(error)); 254 } else { 255 console.log("whether2Activate callback = " + JSON.stringify(value)); 256 } 257}); 258``` 259 260## ethernet.isIfaceActive 261 262isIfaceActive(iface: string): Promise\<number> 263 264判断接口是否已激活,使用Promise方式作为异步方法。 265 266**系统接口**:此接口为系统接口。 267 268**需要权限**:ohos.permission.GET_NETWORK_INFO 269 270**系统能力**:SystemCapability.Communication.NetManager.Ethernet 271 272**参数:** 273 274| 参数名 | 类型 | 必填 | 说明 | 275| ------ | ------ | ---- | -------------------------------------- | 276| iface | string | 是 | 接口名。为空时代表查询是否存在激活接口 | 277 278**返回值:** 279 280| 类型 | 说明 | 281| ----------------| ------------------------------------------------------------------ | 282| Promise\<number> | 以Promise形式返回获取结果。已激活:1,未激活:0,其他为获取失败错误码。| 283 284**错误码:** 285 286| 错误码ID | 错误信息 | 287| ------- | ----------------------------------------| 288| 201 | Permission denied. | 289| 401 | Parameter error. | 290| 2200001 | Invalid parameter value. | 291| 2200002 | Operation failed. Cannot connect to service.| 292| 2200003 | System internal error. | 293| 2201005 | The device information does not exist. | 294 295**示例:** 296 297```js 298ethernet.isIfaceActive("eth0").then((data) => { 299 console.log("isIfaceActive promise = " + JSON.stringify(data)); 300}).catch(error => { 301 console.log("isIfaceActive promise error = " + JSON.stringify(error)); 302}); 303``` 304 305## ethernet.getAllActiveIfaces 306 307getAllActiveIfaces(callback: AsyncCallback\<Array\<string>>): void 308 309获取活动的网络接口,使用callback方式作为异步方法。 310 311**系统接口**:此接口为系统接口。 312 313**需要权限**:ohos.permission.GET_NETWORK_INFO 314 315**系统能力**:SystemCapability.Communication.NetManager.Ethernet 316 317**参数:** 318 319| 参数名 | 类型 | 必填 | 说明 | 320| -------- | ------------------------------------ | ---- | ------------------------------ | 321| callback | AsyncCallback\<Array\<string>> | 是 | 回调函数,返回值为对应接口名。 | 322 323**错误码:** 324 325| 错误码ID | 错误信息 | 326| ------- | ----------------------------------------| 327| 201 | Permission denied. | 328| 2200002 | Operation failed. Cannot connect to service.| 329| 2200003 | System internal error. | 330 331**示例:** 332 333```js 334ethernet.getAllActiveIfaces((error, value) => { 335 if (error) { 336 console.log("getAllActiveIfaces callback error = " + JSON.stringify(error)); 337 } else { 338 console.log("getAllActiveIfaces callback value.length = " + JSON.stringify(value.length)); 339 for (let i = 0; i < value.length; i++) { 340 console.log("getAllActiveIfaces callback = " + JSON.stringify(value[i])); 341 } 342 } 343}); 344``` 345 346## ethernet.getAllActiveIfaces 347 348getAllActiveIfaces(): Promise\<Array\<string>> 349 350获取活动的网络接口,使用Promise方式作为异步方法。 351 352**系统接口**:此接口为系统接口。 353 354**需要权限**:ohos.permission.GET_NETWORK_INFO 355 356**系统能力**:SystemCapability.Communication.NetManager.Ethernet 357 358**返回值:** 359 360| 类型 | 说明 | 361| ------------------------------ | ----------------------------------------------- | 362| Promise\<Array\<string>> | 以Promise形式返回获取结果。返回值为对应接口名。 | 363 364**错误码:** 365 366| 错误码ID | 错误信息 | 367| ------- | ----------------------------------------| 368| 201 | Permission denied. | 369| 2200002 | Operation failed. Cannot connect to service.| 370| 2200003 | System internal error. | 371 372**示例:** 373 374```js 375ethernet.getAllActiveIfaces().then((data) => { 376 console.log("getAllActiveIfaces promise data.length = " + JSON.stringify(data.length)); 377 for (let i = 0; i < data.length; i++) { 378 console.log("getAllActiveIfaces promise = " + JSON.stringify(data[i])); 379 } 380}).catch(error => { 381 console.log("getAllActiveIfaces promise error = " + JSON.stringify(error)); 382}); 383``` 384 385## InterfaceConfiguration 386 387以太网连接配置网络信息。 388 389**系统接口**:此接口为系统接口。 390 391**系统能力**:SystemCapability.Communication.NetManager.Ethernet 392 393| 名称 | 类型 | 必填 | 说明 | 394| ------------ | ----------------------- | ---|------------------------------------------------------------ | 395| mode | [IPSetMode](#ipsetmode) | 是 | 以太网连接配置模式。 | 396| ipAddr | string | 是 | 以太网连接静态配置ip信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 | 397| route | string | 是 | 以太网连接静态配置路由信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 | 398| gateway | string | 是 | 以太网连接配置网关信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 | 399| netMask | string | 是 | 以太网连接配置子网掩码,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 | 400| dnsServers | string | 是 | 以太网连接配置dns服务地址,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)多地址间用“,”隔开。 | 401 402## IPSetMode 403 404以太网连接模式。 405 406**系统接口**:此接口为系统接口。 407 408**系统能力**:SystemCapability.Communication.NetManager.Ethernet 409 410| 名称 | 值 | 说明 | 411| ------------------------ | ---- | ---------------------- | 412| STATIC | 0 | 以太网连接静态配置网络信息。 | 413| DHCP | 1 | 以太网连接动态配置网络信息。 | 414