• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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