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

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

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

## 导入模块

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

## ethernet.setIfaceConfig

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

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

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

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

L
liyufan 已提交
25
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

**参数:**

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

**示例:**

```js
ethernet.setIfaceConfig("eth0", {mode:ethernet.STATIC,ipAddr:"192.168.1.123", routeAddr:"192.168.1.1",
    gateAddr:"192.168.1.1", maskAddr:"255.255.255.0", dnsAddr0:"1.1.1.1", dnsAddr1:"2.2.2.2"},
    (error) => {
        if (error) {
            console.log("setIfaceConfig callback error = " + error);
        } else {
            console.log("setIfaceConfig callback ok ");
        }
    });
```

## ethernet.setIfaceConfig

Y
YOUR_NAME 已提交
51
setIfaceConfig(iface: string, ic: InterfaceConfiguration): Promise\<void>
Z
zhuwenchao 已提交
52 53 54

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

L
liyufan 已提交
55 56
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
57 58
**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL

L
liyufan 已提交
59
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

**参数:**

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

**返回值:**

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

**示例:**

```js
ethernet.setIfaceConfig("eth0", {mode:ethernet.STATIC,ipAddr:"192.168.1.123", routeAddr:"192.168.1.1",
    gateAddr:"192.168.1.1", maskAddr:"255.255.255.0", dnsAddr0:"1.1.1.1", dnsAddr1:"2.2.2.2"}).then(() => {
    console.log("setIfaceConfig promiss ok ");
}).catch((error) => {
    console.log("setIfaceConfig promiss error = " + error);
});
```

## ethernet.getIfaceConfig

Y
YOUR_NAME 已提交
87
getIfaceConfig(iface: string, callback: AsyncCallback\<InterfaceConfiguration>): void
Z
zhuwenchao 已提交
88 89 90

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

L
liyufan 已提交
91 92
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
93 94
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
95
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123

**参数:**

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

**示例:**

```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);
        console.log("getIfaceConfig callback routeAddr = " + value.routeAddr);
        console.log("getIfaceConfig callback gateAddr = " + value.gateAddr);
        console.log("getIfaceConfig callback maskAddr = " + value.maskAddr);
        console.log("getIfaceConfig callback dns0Addr = " + value.dns0Addr);
        console.log("getIfaceConfig callback dns1Addr = " + value.dns1Addr);
    }
});
```

## ethernet.getIfaceConfig

Y
YOUR_NAME 已提交
124
getIfaceConfig(iface: string): Promise\<InterfaceConfiguration>
Z
zhuwenchao 已提交
125 126 127

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

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

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

L
liyufan 已提交
132
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163

**参数:**

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

**返回值:**

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

**示例:**

```js
ethernet.getIfaceConfig("eth0").then((data) => {
    console.log("getIfaceConfig promiss mode = " + data.mode);
    console.log("getIfaceConfig promiss ipAddr = " + data.ipAddr);
    console.log("getIfaceConfig promiss routeAddr = " + data.routeAddr);
    console.log("getIfaceConfig promiss gateAddr = " + data.gateAddr);
    console.log("getIfaceConfig promiss maskAddr = " + data.maskAddr);
    console.log("getIfaceConfig promiss dns0Addr = " + data.dns0Addr);
    console.log("getIfaceConfig promiss dns1Addr = " + data.dns1Addr);
}).catch((error) => {
    console.log("getIfaceConfig promiss error = " + error);
});
```

## ethernet.isIfaceActive

Y
YOUR_NAME 已提交
164
isIfaceActive(iface: string, callback: AsyncCallback\<number>): void
Z
zhuwenchao 已提交
165 166 167

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

L
liyufan 已提交
168 169
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
170 171
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
172
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
173 174 175 176 177

**参数:**

| 参数名   | 类型                        | 必填 | 说明                                               |
| -------- | --------------------------- | ---- | -------------------------------------------------- |
Y
YOUR_NAME 已提交
178
| iface    | string                      | 是   | 接口名。为空时代表查询是否存在激活接口             |
Z
zhuwenchao 已提交
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
| callback | AsyncCallback\<number>       | 是   | 回调函数,已激活:1,未激活:0,其他为获取失败错误码。 |

**示例:**

```js
ethernet.isIfaceActive("eth0", (error, value) => {
  if (error) {
    console.log("whether2Activate callback error = " + error);
  } else {
    console.log("whether2Activate callback = " + value);
  }
});
```

## ethernet.isIfaceActive

Y
YOUR_NAME 已提交
195
isIfaceActive(iface: string): Promise\<number>
Z
zhuwenchao 已提交
196 197 198

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

L
liyufan 已提交
199 200
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
201 202
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
203
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
204 205 206 207 208

**参数:**

| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
Y
YOUR_NAME 已提交
209
| iface  | string | 是   | 接口名。为空时代表查询是否存在激活接口 |
Z
zhuwenchao 已提交
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228

**返回值:**

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

**示例:**

```js
ethernet.isIfaceActive("eth0").then((data) => {
  console.log("isIfaceActive promiss = " + data);
}).catch((error) => {
  console.log("isIfaceActive promiss error = " + error);
});
```

## ethernet.getAllActiveIfaces

Y
YOUR_NAME 已提交
229
getAllActiveIfaces(callback: AsyncCallback\<Array\<string>>): void
Z
zhuwenchao 已提交
230 231 232

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

L
liyufan 已提交
233 234
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
235 236
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
237
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261

**参数:**

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

**示例:**

```js
ethernet.getAllActiveIfaces((error, value) => {
  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]);
    }
  }
});
```

## ethernet.getAllActiveIfaces

Y
YOUR_NAME 已提交
262
getAllActiveIfaces(): Promise\<Array\<string>>
Z
zhuwenchao 已提交
263 264 265

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

L
liyufan 已提交
266 267
**系统接口**:此接口为系统接口。

Z
zhuwenchao 已提交
268 269
**需要权限**:ohos.permission.GET_NETWORK_INFO

L
liyufan 已提交
270
**系统能力**:SystemCapability.Communication.NetManager.Ethernet
Z
zhuwenchao 已提交
271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

**返回值:**

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

**示例:**

```js
ethernet.getAllActiveIfaces().then((data) => {
    console.log("getAllActiveIfaces promiss data.length = " + data.length);
  for (let i = 0; i < data.length; i++) {
    console.log("getAllActiveIfaces promiss  = " + data[i]);
  }
}).catch((error) => {
  console.log("getAllActiveIfaces promiss error = " + error);
});
```

## InterfaceConfiguration

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

L
liyufan 已提交
295 296 297
**系统接口**:此接口为系统接口。

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

Y
YOUR_NAME 已提交
299 300 301 302 303 304 305 306
| 名称          | 类型                    | 必填 | 说明                                                         |
| ------------ | ----------------------- | ---|------------------------------------------------------------ |
| 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 已提交
307 308 309 310 311

## IPSetMode

以太网连接模式。

L
liyufan 已提交
312 313 314
**系统接口**:此接口为系统接口。

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

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