js-apis-net-ethernet.md 15.6 KB
Newer Older
1
# @ohos.net.ethernet (以太网连接管理)
Z
zhuwenchao 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15

以太网连接管理主要提供有线网络能力,提供设置有线网络的IP地址,子网掩码,网关,DNS等信息

> **说明:**
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

```js
import ethernet from '@ohos.net.ethernet'
```

## ethernet.setIfaceConfig

Y
YOUR_NAME 已提交
16
setIfaceConfig(iface: string, ic: InterfaceConfiguration, callback: AsyncCallback\<void>): void
Z
zhuwenchao 已提交
17 18 19

设置网络接口配置信息,使用callback方式作为异步方法。

L
liyufan 已提交
20 21
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
22 23
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

L
liyufan 已提交
24
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
25 26 27 28 29 30 31 32 33

**参数:**

| 参数名   | 类型                                              | 必填 | 说明                                       |
| -------- | ------------------------------------------------- | ---- | ------------------------------------------ |
| iface    | string                                            | 是   | 网络接口名                                     |
| ic       | [InterfaceConfiguration](#interfaceconfiguration) | 是   | 要设置的网络接口配置信息                   |
| callback | AsyncCallback\<void>                     | 是   | 回调函数,成功无返回,失败返回对应错误码。 |

Y
Yangys 已提交
34 35 36 37 38 39 40 41 42 43 44 45 46
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |
| 2201006 | Device disconnected.                    |
| 2201007 | Failed to write the user configuration.    |

Z
zhuwenchao 已提交
47 48 49
**示例:**

```js
Z
zhanghaifeng 已提交
50 51
ethernet.setIfaceConfig("eth0", {
    mode: 0,
Z
zhanghaifeng 已提交
52 53 54
    ipAddr: "192.168.xx.xxx",
    route: "192.168.xx.xxx",
    gateway: "192.168.xx.xxx",
Z
zhanghaifeng 已提交
55 56 57 58 59 60 61 62 63 64
    netMask: "255.255.255.0",
    dnsServers: "1.1.1.1",
    domain: "2.2.2.2"
}, (error) => {
    if (error) {
        console.log("setIfaceConfig callback error = " + error);
    } else {
        console.log("setIfaceConfig callback ok ");
    }
});
Z
zhuwenchao 已提交
65 66 67 68
```

## ethernet.setIfaceConfig

Y
YOUR_NAME 已提交
69
setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\<void>
Z
zhuwenchao 已提交
70 71 72

设置网络接口配置信息,使用Promise方式作为异步方法。

L
liyufan 已提交
73 74
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
75 76
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

L
liyufan 已提交
77
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91

**参数:**

| 参数名 | 类型                                              | 必填 | 说明                     |
| ------ | ------------------------------------------------- | ---- | ------------------------ |
| iface  | string                                            | 是   | 接口名                   |
| ic     | [InterfaceConfiguration](#interfaceconfiguration) | 是   | 要设置的网络接口配置信息 |

**返回值:**

| 类型                | 说明                                                        |
| ------------------- | ----------------------------------------------------------- |
| Promise\<void>       | 以Promise形式返回执行结果。成功无返回,失败返回对应错误码。 |

Y
Yangys 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |
| 2201006 | Device disconnected.                   |
| 2201007 | Failed to write the user configuration.    |

Z
zhuwenchao 已提交
105 106 107
**示例:**

```js
Z
zhanghaifeng 已提交
108 109
ethernet.setIfaceConfig("eth0", {
    mode: 0,
Z
zhanghaifeng 已提交
110 111 112
    ipAddr: "192.168.xx.xxx",
    route: "192.168.xx.xxx",
    gateway: "192.168.xx.xxx",
Z
zhanghaifeng 已提交
113 114 115 116
    netMask: "255.255.255.0",
    dnsServers: "1.1.1.1",
    domain: "2.2.2.2"
}).then(() => {
Z
zhuwenchao 已提交
117
    console.log("setIfaceConfig promiss ok ");
Z
zhanghaifeng 已提交
118
}).catch(error => {
Z
zhuwenchao 已提交
119 120 121 122 123 124
    console.log("setIfaceConfig promiss error = " + error);
});
```

## ethernet.getIfaceConfig

Y
YOUR_NAME 已提交
125
getIfaceConfig(iface: string, callback: AsyncCallback\<InterfaceConfiguration>): void
Z
zhuwenchao 已提交
126 127 128

获取指定网络接口信息,使用callback方式作为异步方法。

L
liyufan 已提交
129 130
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
131 132
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
133
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
134 135 136 137 138 139 140 141

**参数:**

| 参数名   | 类型                                            | 必填  | 说明         |
| -------- | ----------------------------------------------- | ----- | ------------ |
| iface    | string                                          | 是    | 指定网络接口 |
| callback | AsyncCallback\<[InterfaceConfiguration](#interfaceconfiguration)> | 是    | 回调函数,返回指定网络接口信息   |

Y
Yangys 已提交
142 143 144 145 146 147 148 149 150 151 152
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |

Z
zhuwenchao 已提交
153 154 155 156 157 158 159 160 161
**示例:**

```js
ethernet.getIfaceConfig("eth0", (error, value) => {
    if (error) {
        console.log("getIfaceConfig  callback error = " + error);
    } else {
        console.log("getIfaceConfig callback mode = " + value.mode);
        console.log("getIfaceConfig callback ipAddr = " + value.ipAddr);
Z
zhanghaifeng 已提交
162 163 164 165 166
        console.log("getIfaceConfig callback route = " + value.route);
        console.log("getIfaceConfig callback gateway = " + value.gateway);
        console.log("getIfaceConfig callback netMask = " + value.netMask);
        console.log("getIfaceConfig callback dnsServers = " + value.dnsServers);
        console.log("getIfaceConfig callback domain = " + value.domain);
Z
zhuwenchao 已提交
167 168 169 170 171 172
    }
});
```

## ethernet.getIfaceConfig

Y
YOUR_NAME 已提交
173
getIfaceConfig(iface: string): Promise\<InterfaceConfiguration>
Z
zhuwenchao 已提交
174 175 176

获取指定网络接口信息,使用Promise方式作为异步方法。

L
liyufan 已提交
177 178
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
179 180
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
181
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
182 183 184 185 186 187 188 189 190 191 192 193 194

**参数:**

| 参数名   | 类型                                    | 必填 | 说明         |
| -------- | --------------------------------------- | ---- | ------------ |
| iface    | string                                  | 是   | 指定网络接口 |

**返回值:**

| 类型                              | 说明                               |
| --------------------------------- | ---------------------------------- |
| Promise\<[InterfaceConfiguration](#interfaceconfiguration)>   | 以Promise形式返回接口信息。        |

Y
Yangys 已提交
195 196 197 198 199 200 201 202 203 204 205
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |

Z
zhuwenchao 已提交
206 207 208 209 210 211
**示例:**

```js
ethernet.getIfaceConfig("eth0").then((data) => {
    console.log("getIfaceConfig promiss mode = " + data.mode);
    console.log("getIfaceConfig promiss ipAddr = " + data.ipAddr);
Z
zhanghaifeng 已提交
212 213 214 215 216 217
    console.log("getIfaceConfig promiss route = " + data.route);
    console.log("getIfaceConfig promiss gateway = " + data.gateway);
    console.log("getIfaceConfig promiss netMask = " + data.netMask);
    console.log("getIfaceConfig promiss dnsServers = " + data.dnsServers);
    console.log("getIfaceConfig promiss domain = " + data.domain);
}).catch(error => {
Z
zhuwenchao 已提交
218 219 220 221 222 223
    console.log("getIfaceConfig promiss error = " + error);
});
```

## ethernet.isIfaceActive

Y
YOUR_NAME 已提交
224
isIfaceActive(iface: string, callback: AsyncCallback\<number>): void
Z
zhuwenchao 已提交
225 226 227

判断接口是否已激活,使用callback方式作为异步方法。

L
liyufan 已提交
228 229
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
230 231
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
232
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
233 234 235 236 237

**参数:**

| 参数名   | 类型                        | 必填 | 说明                                               |
| -------- | --------------------------- | ---- | -------------------------------------------------- |
Y
YOUR_NAME 已提交
238
| iface    | string                      | 是   | 接口名。为空时代表查询是否存在激活接口             |
Z
zhuwenchao 已提交
239 240
| callback | AsyncCallback\<number>       | 是   | 回调函数,已激活:1,未激活:0,其他为获取失败错误码。 |

Y
Yangys 已提交
241 242 243 244 245 246 247 248 249 250 251
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |

Z
zhuwenchao 已提交
252 253 254 255
**示例:**

```js
ethernet.isIfaceActive("eth0", (error, value) => {
Z
zhanghaifeng 已提交
256 257 258 259 260
    if (error) {
        console.log("whether2Activate callback error = " + error);
    } else {
        console.log("whether2Activate callback = " + value);
    }
Z
zhuwenchao 已提交
261 262 263 264 265
});
```

## ethernet.isIfaceActive

Y
YOUR_NAME 已提交
266
isIfaceActive(iface: string): Promise\<number>
Z
zhuwenchao 已提交
267 268 269

判断接口是否已激活,使用Promise方式作为异步方法。

L
liyufan 已提交
270 271
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
272 273
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
274
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
275 276 277 278 279

**参数:**

| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
Y
YOUR_NAME 已提交
280
| iface  | string | 是   | 接口名。为空时代表查询是否存在激活接口 |
Z
zhuwenchao 已提交
281 282 283 284 285 286 287

**返回值:**

| 类型            | 说明                                                               |
| ----------------| ------------------------------------------------------------------ |
| Promise\<number> | 以Promise形式返回获取结果。已激活:1,未激活:0,其他为获取失败错误码。|

Y
Yangys 已提交
288 289 290 291 292 293 294 295 296 297 298
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 401     | Parameter error.                        |
| 2200001 | Invalid parameter value.                |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |
| 2201005 | The device information does not exist.  |

Z
zhuwenchao 已提交
299 300 301 302
**示例:**

```js
ethernet.isIfaceActive("eth0").then((data) => {
Z
zhanghaifeng 已提交
303 304 305
    console.log("isIfaceActive promiss = " + data);
}).catch(error => {
    console.log("isIfaceActive promiss error = " + error);
Z
zhuwenchao 已提交
306 307 308 309 310
});
```

## ethernet.getAllActiveIfaces

Y
YOUR_NAME 已提交
311
getAllActiveIfaces(callback: AsyncCallback\<Array\<string>>): void
Z
zhuwenchao 已提交
312 313 314

获取活动的网络接口,使用callback方式作为异步方法。

L
liyufan 已提交
315 316
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
317 318
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
319
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
320 321 322 323 324 325 326

**参数:**

| 参数名   | 类型                                 | 必填 | 说明                           |
| -------- | ------------------------------------ | ---- | ------------------------------ |
| callback | AsyncCallback\<Array\<string>>         | 是   | 回调函数,返回值为对应接口名。 |

Y
Yangys 已提交
327 328 329 330 331 332 333 334
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |

Z
zhuwenchao 已提交
335 336 337 338
**示例:**

```js
ethernet.getAllActiveIfaces((error, value) => {
Z
zhanghaifeng 已提交
339 340 341 342 343 344 345
    if (error) {
        console.log("getAllActiveIfaces callback error = " + error);
    } else {
        console.log("getAllActiveIfaces callback value.length = " + value.length);
        for (let i = 0; i < value.length; i++) {
            console.log("getAllActiveIfaces callback = " + value[i]);
        }
Z
zhuwenchao 已提交
346 347 348 349 350 351
    }
});
```

## ethernet.getAllActiveIfaces

Y
YOUR_NAME 已提交
352
getAllActiveIfaces(): Promise\<Array\<string>>
Z
zhuwenchao 已提交
353 354 355

获取活动的网络接口,使用Promise方式作为异步方法。

L
liyufan 已提交
356 357
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
358 359
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
360
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
361 362 363 364 365 366 367

**返回值:**

| 类型                           | 说明                                            |
| ------------------------------ | ----------------------------------------------- |
| Promise\<Array\<string>>         | 以Promise形式返回获取结果。返回值为对应接口名。 |

Y
Yangys 已提交
368 369 370 371 372 373 374 375
**错误码:**

| 错误码ID | 错误信息                                 |
| ------- | ----------------------------------------|
| 201     | Permission denied.                      |
| 2200002 | Operation failed. Cannot connect to service.|
| 2200003 | System internal error.                  |

Z
zhuwenchao 已提交
376 377 378 379 380
**示例:**

```js
ethernet.getAllActiveIfaces().then((data) => {
    console.log("getAllActiveIfaces promiss data.length = " + data.length);
Z
zhanghaifeng 已提交
381 382 383 384 385
    for (let i = 0; i < data.length; i++) {
        console.log("getAllActiveIfaces promiss  = " + data[i]);
    }
}).catch(error => {
    console.log("getAllActiveIfaces promiss error = " + error);
Z
zhuwenchao 已提交
386 387 388 389 390 391 392
});
```

## InterfaceConfiguration

以太网连接配置网络信息。

L
liyufan 已提交
393 394 395
**系统接口**:此接口为系统接口。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Ethernet。
Z
zhuwenchao 已提交
396

Y
YOUR_NAME 已提交
397 398 399 400 401 402 403 404
| 名称          | 类型                    | 必填 | 说明                                                         |
| ------------ | ----------------------- | ---|------------------------------------------------------------ |
| mode         | [IPSetMode](#ipsetmode) | 是 | 以太网连接配置模式。 |
| ipAddr       | string                  | 是 | 以太网连接静态配置ip信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
| route        | string                  | 是 | 以太网连接静态配置路由信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
| gateway      | string                  | 是 | 以太网连接配置网关信息,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
| netMask      | string                  | 是 | 以太网连接配置子网掩码,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)。 |
| dnsServers   | string                  | 是 | 以太网连接配置dns服务地址,地址值范围0-255.0-255.0-255.0-255(DHCP模式无需配置)多地址间用“,”隔开。 |
Z
zhuwenchao 已提交
405 406 407 408 409

## IPSetMode

以太网连接模式。

L
liyufan 已提交
410 411 412
**系统接口**:此接口为系统接口。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetManager.Ethernet。
Z
zhuwenchao 已提交
413

L
liyufan 已提交
414
| 名称                  | 值   | 说明                   |
Z
zhuwenchao 已提交
415 416 417
| ------------------------ | ---- | ---------------------- |
| STATIC | 0 | 以太网连接静态配置网络信息。 |
| DHCP   | 1 | 以太网连接动态配置网络信息。 |