• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.net.ethernet (以太网连接管理)
2
3以太网连接管理主要提供有线网络能力,提供设置有线网络的IP地址,子网掩码,网关,DNS,代理等信息
4
5> **说明:**
6> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8## 导入模块
9
10```ts
11import ethernet from '@ohos.net.ethernet'
12```
13
14## ethernet.setIfaceConfig<sup>9+</sup>
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](#interfaceconfiguration9) | 是   | 要设置的网络接口配置信息                   |
32| callback | AsyncCallback\<void>                     | 是   | 回调函数,成功无返回,失败返回对应错误码。 |
33
34**错误码:**
35
36| 错误码ID | 错误信息                                 |
37| ------- | ----------------------------------------|
38| 201     | Permission denied.                      |
39| 202     | Non-system applications use system APIs.                      |
40| 401     | Parameter error.                        |
41| 2200001 | Invalid parameter value.                |
42| 2200002 | Operation failed. Cannot connect to service.|
43| 2200003 | System internal error.                  |
44| 2201004 | Invalid Ethernet profile.  |
45| 2201005 | Device information does not exist.  |
46| 2201006 | Ethernet device not connected.                    |
47| 2201007 | Ethernet failed to write user configuration information.    |
48
49**示例:**
50
51```ts
52import ethernet from '@ohos.net.ethernet'
53import { BusinessError } from '@ohos.base'
54
55let config: ethernet.InterfaceConfiguration = {
56  mode: 0,
57  ipAddr: "192.168.xx.xxx",
58  route: "192.168.xx.xxx",
59  gateway: "192.168.xx.xxx",
60  netMask: "255.255.255.0",
61  dnsServers: "1.1.1.1"
62};
63
64ethernet.setIfaceConfig("eth0", config, (error: BusinessError) => {
65  if (error) {
66    console.log("setIfaceConfig callback error = " + JSON.stringify(error));
67  } else {
68    console.log("setIfaceConfig callback ok");
69  }
70});
71```
72
73## ethernet.setIfaceConfig<sup>9+</sup>
74
75setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\<void>
76
77设置网络接口配置信息,使用Promise方式作为异步方法。
78
79**系统接口**:此接口为系统接口。
80
81**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
82
83**系统能力**:SystemCapability.Communication.NetManager.Ethernet
84
85**参数:**
86
87| 参数名 | 类型                                              | 必填 | 说明                     |
88| ------ | ------------------------------------------------- | ---- | ------------------------ |
89| iface  | string                                            | 是   | 接口名                   |
90| ic     | [InterfaceConfiguration](#interfaceconfiguration9) | 是   | 要设置的网络接口配置信息 |
91
92**返回值:**
93
94| 类型                | 说明                                                        |
95| ------------------- | ----------------------------------------------------------- |
96| Promise\<void>       | 以Promise形式返回执行结果。成功无返回,失败返回对应错误码。 |
97
98**错误码:**
99
100| 错误码ID | 错误信息                                 |
101| ------- | ----------------------------------------|
102| 201     | Permission denied.                      |
103| 202     | Non-system applications use system APIs.                      |
104| 401     | Parameter error.                        |
105| 2200001 | Invalid parameter value.                |
106| 2200002 | Operation failed. Cannot connect to service.|
107| 2200003 | System internal error.                  |
108| 2201004 | Invalid Ethernet profile.  |
109| 2201005 | Device information does not exist.  |
110| 2201006 | Ethernet device not connected.                    |
111| 2201007 | Ethernet failed to write user configuration information.    |
112
113**示例:**
114
115```ts
116import ethernet from '@ohos.net.ethernet'
117import { BusinessError } from '@ohos.base'
118
119let config: ethernet.InterfaceConfiguration = {
120  mode: 0,
121  ipAddr: "192.168.xx.xxx",
122  route: "192.168.xx.xxx",
123  gateway: "192.168.xx.xxx",
124  netMask: "255.255.255.0",
125  dnsServers: "1.1.1.1"
126};
127
128const setConfigPromise = ethernet.setIfaceConfig("eth0", config);
129
130setConfigPromise.then(() => {
131  console.log("setIfaceConfig promise ok");
132}).catch((error: BusinessError)  => {
133  console.log("setIfaceConfig promise error = " + JSON.stringify(error));
134});
135```
136
137## ethernet.getIfaceConfig<sup>9+</sup>
138
139getIfaceConfig(iface: string, callback: AsyncCallback\<InterfaceConfiguration>): void
140
141获取指定网络接口信息,使用callback方式作为异步方法。
142
143**系统接口**:此接口为系统接口。
144
145**需要权限**:ohos.permission.GET_NETWORK_INFO
146
147**系统能力**:SystemCapability.Communication.NetManager.Ethernet
148
149**参数:**
150
151| 参数名   | 类型                                            | 必填  | 说明         |
152| -------- | ----------------------------------------------- | ----- | ------------ |
153| iface    | string                                          | 是    | 指定网络接口 |
154| callback | AsyncCallback\<[InterfaceConfiguration](#interfaceconfiguration)> | 是    | 回调函数,返回指定网络接口信息   |
155
156**错误码:**
157
158| 错误码ID | 错误信息                                 |
159| ------- | ----------------------------------------|
160| 201     | Permission denied.                      |
161| 202     | Non-system applications use system APIs.                      |
162| 401     | Parameter error.                        |
163| 2200001 | Invalid parameter value.                |
164| 2200002 | Operation failed. Cannot connect to service.|
165| 2200003 | System internal error.                  |
166| 2201005 | Device information does not exist.  |
167
168**示例:**
169
170```ts
171import ethernet from '@ohos.net.ethernet'
172import { BusinessError } from '@ohos.base'
173
174ethernet.getIfaceConfig("eth0", (error: BusinessError, value: ethernet.InterfaceConfiguration) => {
175  if (error) {
176    console.log("getIfaceConfig  callback error = " + JSON.stringify(error));
177  } else {
178    console.log("getIfaceConfig callback mode = " + JSON.stringify(value.mode));
179    console.log("getIfaceConfig callback ipAddr = " + JSON.stringify(value.ipAddr));
180    console.log("getIfaceConfig callback route = " + JSON.stringify(value.route));
181    console.log("getIfaceConfig callback gateway = " + JSON.stringify(value.gateway));
182    console.log("getIfaceConfig callback netMask = " + JSON.stringify(value.netMask));
183    console.log("getIfaceConfig callback dnsServers = " + JSON.stringify(value.dnsServers));
184  }
185});
186```
187
188## ethernet.getIfaceConfig<sup>9+</sup>
189
190getIfaceConfig(iface: string): Promise\<InterfaceConfiguration>
191
192获取指定网络接口信息,使用Promise方式作为异步方法。
193
194**系统接口**:此接口为系统接口。
195
196**需要权限**:ohos.permission.GET_NETWORK_INFO
197
198**系统能力**:SystemCapability.Communication.NetManager.Ethernet
199
200**参数:**
201
202| 参数名   | 类型                                    | 必填 | 说明         |
203| -------- | --------------------------------------- | ---- | ------------ |
204| iface    | string                                  | 是   | 指定网络接口 |
205
206**返回值:**
207
208| 类型                              | 说明                               |
209| --------------------------------- | ---------------------------------- |
210| Promise\<[InterfaceConfiguration](#interfaceconfiguration)>   | 以Promise形式返回接口信息。        |
211
212**错误码:**
213
214| 错误码ID | 错误信息                                 |
215| ------- | ----------------------------------------|
216| 201     | Permission denied.                      |
217| 202     | Non-system applications use system APIs.                      |
218| 401     | Parameter error.                        |
219| 2200001 | Invalid parameter value.                |
220| 2200002 | Operation failed. Cannot connect to service.|
221| 2200003 | System internal error.                  |
222| 2201005 | Device information does not exist.  |
223
224**示例:**
225
226```ts
227import ethernet from '@ohos.net.ethernet'
228import { BusinessError } from '@ohos.base'
229
230ethernet.getIfaceConfig("eth0").then((data: ethernet.InterfaceConfiguration) => {
231  console.log("getIfaceConfig promise mode = " + JSON.stringify(data.mode));
232  console.log("getIfaceConfig promise ipAddr = " + JSON.stringify(data.ipAddr));
233  console.log("getIfaceConfig promise route = " + JSON.stringify(data.route));
234  console.log("getIfaceConfig promise gateway = " + JSON.stringify(data.gateway));
235  console.log("getIfaceConfig promise netMask = " + JSON.stringify(data.netMask));
236  console.log("getIfaceConfig promise dnsServers = " + JSON.stringify(data.dnsServers));
237}).catch((error: BusinessError) => {
238  console.log("getIfaceConfig promise error = " + JSON.stringify(error));
239});
240```
241
242## ethernet.isIfaceActive<sup>9+</sup>
243
244isIfaceActive(iface: string, callback: AsyncCallback\<number>): void
245
246判断接口是否已激活,使用callback方式作为异步方法。
247
248**系统接口**:此接口为系统接口。
249
250**需要权限**:ohos.permission.GET_NETWORK_INFO
251
252**系统能力**:SystemCapability.Communication.NetManager.Ethernet
253
254**参数:**
255
256| 参数名   | 类型                        | 必填 | 说明                                               |
257| -------- | --------------------------- | ---- | -------------------------------------------------- |
258| iface    | string                      | 是   | 接口名。为空时代表查询是否存在激活接口             |
259| callback | AsyncCallback\<number>       | 是   | 回调函数,已激活:1,未激活:0,其他为获取失败错误码。 |
260
261**错误码:**
262
263| 错误码ID | 错误信息                                 |
264| ------- | ----------------------------------------|
265| 201     | Permission denied.                      |
266| 202     | Non-system applications use system APIs.                      |
267| 401     | Parameter error.                        |
268| 2200001 | Invalid parameter value.                |
269| 2200002 | Operation failed. Cannot connect to service.|
270| 2200003 | System internal error.                  |
271| 2201005 | Device information does not exist.  |
272
273**示例:**
274
275```ts
276import ethernet from '@ohos.net.ethernet'
277import { BusinessError } from '@ohos.base'
278
279ethernet.isIfaceActive("eth0", (error: BusinessError, value: number) => {
280  if (error) {
281    console.log("whether2Activate callback error = " + JSON.stringify(error));
282  } else {
283    console.log("whether2Activate callback = " + JSON.stringify(value));
284  }
285});
286```
287
288## ethernet.isIfaceActive<sup>9+</sup>
289
290isIfaceActive(iface: string): Promise\<number>
291
292判断接口是否已激活,使用Promise方式作为异步方法。
293
294**系统接口**:此接口为系统接口。
295
296**需要权限**:ohos.permission.GET_NETWORK_INFO
297
298**系统能力**:SystemCapability.Communication.NetManager.Ethernet
299
300**参数:**
301
302| 参数名 | 类型   | 必填 | 说明                                   |
303| ------ | ------ | ---- | -------------------------------------- |
304| iface  | string | 是   | 接口名。为空时代表查询是否存在激活接口 |
305
306**返回值:**
307
308| 类型            | 说明                                                               |
309| ----------------| ------------------------------------------------------------------ |
310| Promise\<number> | 以Promise形式返回获取结果。已激活:1,未激活:0,其他为获取失败错误码。|
311
312**错误码:**
313
314| 错误码ID | 错误信息                                 |
315| ------- | ----------------------------------------|
316| 201     | Permission denied.                      |
317| 202     | Non-system applications use system APIs.                      |
318| 401     | Parameter error.                        |
319| 2200001 | Invalid parameter value.                |
320| 2200002 | Operation failed. Cannot connect to service.|
321| 2200003 | System internal error.                  |
322| 2201005 | Device information does not exist.  |
323
324**示例:**
325
326```ts
327import ethernet from '@ohos.net.ethernet'
328import { BusinessError } from '@ohos.base'
329
330ethernet.isIfaceActive("eth0").then((data: number) => {
331  console.log("isIfaceActive promise = " + JSON.stringify(data));
332}).catch((error: BusinessError) => {
333  console.log("isIfaceActive promise error = " + JSON.stringify(error));
334});
335```
336
337## ethernet.getAllActiveIfaces<sup>9+</sup>
338
339getAllActiveIfaces(callback: AsyncCallback\<Array\<string>>): void
340
341获取活动的网络接口,使用callback方式作为异步方法。
342
343**系统接口**:此接口为系统接口。
344
345**需要权限**:ohos.permission.GET_NETWORK_INFO
346
347**系统能力**:SystemCapability.Communication.NetManager.Ethernet
348
349**参数:**
350
351| 参数名   | 类型                                 | 必填 | 说明                           |
352| -------- | ------------------------------------ | ---- | ------------------------------ |
353| callback | AsyncCallback\<Array\<string>>         | 是   | 回调函数,返回值为对应接口名。 |
354
355**错误码:**
356
357| 错误码ID | 错误信息                                 |
358| ------- | ----------------------------------------|
359| 201     | Permission denied.                      |
360| 202     | Non-system applications use system APIs.                      |
361| 2200002 | Operation failed. Cannot connect to service.|
362| 2200003 | System internal error.                  |
363
364**示例:**
365
366```ts
367import ethernet from '@ohos.net.ethernet'
368import { BusinessError } from '@ohos.base'
369
370ethernet.getAllActiveIfaces((error: BusinessError, value: string[]) => {
371  if (error) {
372    console.log("getAllActiveIfaces callback error = " + JSON.stringify(error));
373  } else {
374    console.log("getAllActiveIfaces callback value.length = " + JSON.stringify(value.length));
375    for (let i = 0; i < value.length; i++) {
376      console.log("getAllActiveIfaces callback = " + JSON.stringify(value[i]));
377    }
378  }
379});
380```
381
382## ethernet.getAllActiveIfaces<sup>9+</sup>
383
384getAllActiveIfaces(): Promise\<Array\<string>>
385
386获取活动的网络接口,使用Promise方式作为异步方法。
387
388**系统接口**:此接口为系统接口。
389
390**需要权限**:ohos.permission.GET_NETWORK_INFO
391
392**系统能力**:SystemCapability.Communication.NetManager.Ethernet
393
394**返回值:**
395
396| 类型                           | 说明                                            |
397| ------------------------------ | ----------------------------------------------- |
398| Promise\<Array\<string>>         | 以Promise形式返回获取结果。返回值为对应接口名。 |
399
400**错误码:**
401
402| 错误码ID | 错误信息                                 |
403| ------- | ----------------------------------------|
404| 201     | Permission denied.                      |
405| 202     | Non-system applications use system APIs.                      |
406| 2200002 | Operation failed. Cannot connect to service.|
407| 2200003 | System internal error.                  |
408
409**示例:**
410
411```ts
412import ethernet from '@ohos.net.ethernet'
413import { BusinessError } from '@ohos.base'
414
415ethernet.getAllActiveIfaces().then((data: string[]) => {
416  console.log("getAllActiveIfaces promise data.length = " + JSON.stringify(data.length));
417  for (let i = 0; i < data.length; i++) {
418    console.log("getAllActiveIfaces promise  = " + JSON.stringify(data[i]));
419  }
420}).catch((error:BusinessError) => {
421  console.log("getAllActiveIfaces promise error = " + JSON.stringify(error));
422});
423```
424
425## ethernet.on('interfaceStateChange')<sup>10+</sup>
426
427on(type: 'interfaceStateChange', callback: Callback\<{ iface: string, active: boolean }\>): void
428
429注册网卡热插拔事件,使用callback方式作为异步方法。
430
431**系统接口**:此接口为系统接口。
432
433**需要权限**:ohos.permission.GET_NETWORK_INFO
434
435**系统能力**:SystemCapability.Communication.NetManager.Ethernet
436
437**参数:**
438
439| 参数名   | 类型                                    | 必填 | 说明       |
440| -------- | --------------------------------------- | ---- | ---------- |
441| type     | string                  | 是   | 订阅的事件类型,'interfaceStateChange'。 |
442| callback | AsyncCallback\<{ iface: string, active: boolean }\> | 是   | 回调函数。<br>iface:网卡名称。<br>active:是否处于激活状态(true:激活;false:未激活) |
443
444**错误码:**
445
446| 错误码ID | 错误信息                                      |
447| ------- | -------------------------------------------- |
448| 201     | Permission denied.                      |
449| 202     | Non-system applications use system APIs.                      |
450| 401     | Parameter error.                     |
451
452**示例:**
453
454```ts
455import ethernet from '@ohos.net.ethernet'
456
457ethernet.on('interfaceStateChange', (data: object) => {
458  console.log('on interfaceSharingStateChange:' + JSON.stringify(data));
459});
460```
461
462## ethernet.off('interfaceStateChange')<sup>10+</sup>
463
464off(type: 'interfaceStateChange', callback?: Callback\<{ iface: string, active: boolean }\>): void
465
466注销网卡热插拔事件,使用callback方式作为异步方法。
467
468**系统接口**:此接口为系统接口。
469
470**需要权限**:ohos.permission.GET_NETWORK_INFO
471
472**系统能力**:SystemCapability.Communication.NetManager.Ethernet
473
474**参数:**
475
476| 参数名   | 类型                                    | 必填 | 说明       |
477| -------- | --------------------------------------- | ---- | ---------- |
478| type     | string                  | 是   | 订阅的事件类型,'interfaceStateChange'。 |
479| callback | AsyncCallback\<{ iface: string, active: boolean }> | 否   | 回调函数。<br>iface:网卡名称。<br>active:是否处于激活状态(true:激活;false:未激活) |
480
481**错误码:**
482
483| 错误码ID | 错误信息                                      |
484| ------- | -------------------------------------------- |
485| 201     | Permission denied.                      |
486| 202     | Non-system applications use system APIs.                      |
487| 401     | Parameter error.                     |
488
489**示例:**
490
491```ts
492import ethernet from '@ohos.net.ethernet'
493
494ethernet.off('interfaceStateChange');
495```
496
497## InterfaceConfiguration<sup>9+</sup>
498
499以太网连接配置网络信息。
500
501**系统接口**:此接口为系统接口。
502
503**系统能力**:SystemCapability.Communication.NetManager.Ethernet
504
505| 名称          | 类型                    | 必填 | 说明                                                         |
506| ------------ | ----------------------- | ---|------------------------------------------------------------ |
507| mode         | [IPSetMode](#ipsetmode) | 是 | 以太网连接配置模式。 |
508| ipAddr       | string                  | 是 | 以太网连接静态配置ip信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
509| route        | string                  | 是 | 以太网连接静态配置路由信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
510| gateway      | string                  | 是 | 以太网连接配置网关信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
511| netMask      | string                  | 是 | 以太网连接配置子网掩码,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
512| dnsServers   | string                  | 是 | 以太网连接配置dns服务地址,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)多地址间用“,”隔开。 |
513| httpProxy<sup>10+</sup> | [HttpProxy](js-apis-net-connection.md#httpproxy10) | 否 | 以太网连接代理配置信息,默认情况下不配置任何代理信息。 |
514
515## IPSetMode<sup>9+</sup>
516
517以太网连接模式。
518
519**系统接口**:此接口为系统接口。
520
521**系统能力**:SystemCapability.Communication.NetManager.Ethernet
522
523| 名称                  | 值   | 说明                        |
524| --------------------- | ---- | -------------------------- |
525| STATIC                | 0    | 以太网连接静态配置网络信息。 |
526| DHCP                  | 1    | 以太网连接动态配置网络信息。 |
527| LAN_STATIC            | 2    | LAN连接静态配置网络信息。    |
528| LAN_DHCP              | 3    | LAN连接动态配置网络信息。    |
529