1# @ohos.enterprise.networkManager(网络管理)
2
3本模块提供设备网络管理能力,包括查询设备IP地址、MAC地址信息等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将设备管理应用激活后调用,实现相应功能。
12>
13
14## 导入模块
15
16```ts
17import { networkManager } from '@kit.MDMKit';
18```
19
20## networkManager.getAllNetworkInterfacesSync
21
22getAllNetworkInterfacesSync(admin: Want): Array<string>
23
24指定设备管理应用获取所有激活的网络接口。
25
26**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
27
28**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
29
30
31**参数:**
32
33| 参数名 | 类型                                                    | 必填 | 说明           |
34| ------ | ------------------------------------------------------- | ---- | -------------- |
35| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
36
37**返回值:**
38
39| 类型                | 说明                   |
40| ------------------- | ---------------------- |
41| Array<string> | 返回网络接口名称数组。 |
42
43**错误码**:
44
45以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
46
47| 错误码ID | 错误信息                                                     |
48| -------- | ------------------------------------------------------------ |
49| 9200001  | The application is not an administrator application of the device. |
50| 9200002  | The administrator application does not have permission to manage the device. |
51| 201      | Permission verification failed. The application does not have the permission required to call the API. |
52| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
53
54**示例:**
55
56```ts
57import { Want } from '@kit.AbilityKit';
58let wantTemp: Want = {
59  bundleName: 'com.example.myapplication',
60  abilityName: 'EntryAbility',
61};
62
63try {
64  let result: Array<string> = networkManager.getAllNetworkInterfacesSync(wantTemp);
65  console.info(`Succeeded in getting all network interfaces, result : ${JSON.stringify(result)}`);
66} catch (err) {
67  console.error(`Failed to get all network interfaces. Code: ${err.code}, message: ${err.message}`);
68}
69```
70
71## networkManager.getIpAddressSync
72
73getIpAddressSync(admin: Want, networkInterface: string): string
74
75指定设备管理应用根据网络接口获取设备IP地址。
76
77**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
78
79**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
80
81
82**参数:**
83
84| 参数名           | 类型                                                    | 必填 | 说明           |
85| ---------------- | ------------------------------------------------------- | ---- | -------------- |
86| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
87| networkInterface | string                                                  | 是   | 指定网络接口。 |
88
89**返回值:**
90
91| 类型   | 说明             |
92| ------ | ---------------- |
93| string | 返回设备IP地址。 |
94
95**错误码**:
96
97以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
98
99| 错误码ID | 错误信息                                                     |
100| -------- | ------------------------------------------------------------ |
101| 9200001  | The application is not an administrator application of the device. |
102| 9200002  | The administrator application does not have permission to manage the device. |
103| 201      | Permission verification failed. The application does not have the permission required to call the API. |
104| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
105
106**示例:**
107
108```ts
109import { Want } from '@kit.AbilityKit';
110let wantTemp: Want = {
111  bundleName: 'com.example.myapplication',
112  abilityName: 'EntryAbility',
113};
114
115try {
116  let result: string = networkManager.getIpAddressSync(wantTemp, 'eth0');
117  console.info(`Succeeded in getting ip address, result : ${result}`);
118} catch (err) {
119  console.error(`Failed to get ip address. Code: ${err.code}, message: ${err.message}`);
120}
121```
122
123## networkManager.getMacSync
124
125getMacSync(admin: Want, networkInterface: string): string
126
127指定设备管理应用根据网络接口获取设备MAC地址。
128
129**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
130
131**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
132
133
134**参数:**
135
136| 参数名           | 类型                                                    | 必填 | 说明           |
137| ---------------- | ------------------------------------------------------- | ---- | -------------- |
138| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
139| networkInterface | string                                                  | 是   | 指定网络接口。 |
140
141**返回值:**
142
143| 类型   | 说明              |
144| ------ | ----------------- |
145| string | 返回设备MAC地址。 |
146
147**错误码**:
148
149以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
150
151| 错误码ID | 错误信息                                                     |
152| -------- | ------------------------------------------------------------ |
153| 9200001  | The application is not an administrator application of the device. |
154| 9200002  | The administrator application does not have permission to manage the device. |
155| 201      | Permission verification failed. The application does not have the permission required to call the API. |
156| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
157
158**示例:**
159
160```ts
161import { Want } from '@kit.AbilityKit';
162let wantTemp: Want = {
163  bundleName: 'com.example.myapplication',
164  abilityName: 'EntryAbility',
165};
166
167try {
168  let result: string = networkManager.getMacSync(wantTemp, 'eth0');
169  console.info(`Succeeded in getting mac, result : ${result}`);
170} catch (err) {
171  console.error(`Failed to get mac. Code: ${err.code}, message: ${err.message}`);
172}
173```
174
175## networkManager.isNetworkInterfaceDisabledSync
176
177isNetworkInterfaceDisabledSync(admin: Want, networkInterface: string): boolean
178
179指定设备管理应用查询指定网络接口是否被禁用。
180
181**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
182
183**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
184
185
186**参数:**
187
188| 参数名           | 类型                                                    | 必填 | 说明           |
189| ---------------- | ------------------------------------------------------- | ---- | -------------- |
190| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
191| networkInterface | string                                                  | 是   | 指定网络接口。 |
192
193**返回值:**
194
195| 类型    | 说明                                                         |
196| ------- | ------------------------------------------------------------ |
197| boolean | 返回指定网络接口是否被禁用,true表示该网络接口被禁用,false表示该网络接口未被禁用。 |
198
199**错误码**:
200
201以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
202
203| 错误码ID | 错误信息                                                     |
204| -------- | ------------------------------------------------------------ |
205| 9200001  | The application is not an administrator application of the device. |
206| 9200002  | The administrator application does not have permission to manage the device. |
207| 201      | Permission verification failed. The application does not have the permission required to call the API. |
208| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
209
210**示例:**
211
212```ts
213import { Want } from '@kit.AbilityKit';
214let wantTemp: Want = {
215  bundleName: 'com.example.myapplication',
216  abilityName: 'EntryAbility',
217};
218
219try {
220  let result: boolean = networkManager.isNetworkInterfaceDisabledSync(wantTemp, 'eth0');
221  console.info(`Succeeded in querying network interface is disabled or not, result : ${result}`);
222} catch (err) {
223  console.error(`Failed to query network interface is disabled or not. Code: ${err.code}, message: ${err.message}`);
224}
225```
226
227## networkManager.setNetworkInterfaceDisabledSync
228
229setNetworkInterfaceDisabledSync(admin: Want, networkInterface: string, isDisabled: boolean): void
230
231指定设备管理应用禁止设备使用指定网络。
232
233**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
234
235**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
236
237
238**参数:**
239
240| 参数名           | 类型                                                    | 必填 | 说明                                              |
241| ---------------- | ------------------------------------------------------- | ---- | ------------------------------------------------- |
242| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                    |
243| networkInterface | string                                                  | 是   | 指定网络接口。                                    |
244| isDisabled       | boolean                                                 | 是   | true表示禁用该网络接口,false表示开启该网络接口。 |
245
246**错误码**:
247
248以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
249
250| 错误码ID | 错误信息                                                     |
251| -------- | ------------------------------------------------------------ |
252| 9200001  | The application is not an administrator application of the device. |
253| 9200002  | The administrator application does not have permission to manage the device. |
254| 201      | Permission verification failed. The application does not have the permission required to call the API. |
255| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
256
257**示例:**
258
259```ts
260import { Want } from '@kit.AbilityKit';
261import { BusinessError } from '@kit.BasicServicesKit';
262let wantTemp: Want = {
263  bundleName: 'com.example.myapplication',
264  abilityName: 'EntryAbility',
265};
266
267try {
268  networkManager.setNetworkInterfaceDisabledSync(wantTemp, 'eth0', true);
269  console.info(`Succeeded in setting network interface disabled`);
270} catch (err) {
271  console.error(`Failed to set network interface disabled. Code: ${err.code}, message: ${err.message}`);
272}
273```
274
275## networkManager.setGlobalProxySync
276
277setGlobalProxySync(admin: Want, httpProxy: connection.HttpProxy): void
278
279指定设备管理应用设置网络全局代理。
280
281**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
282
283**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
284
285
286**参数:**
287
288| 参数名    | 类型                                                         | 必填 | 说明                       |
289| --------- | ------------------------------------------------------------ | ---- | -------------------------- |
290| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md)      | 是   | 设备管理应用。             |
291| httpProxy | [connection.HttpProxy](../apis-network-kit/js-apis-net-connection.md#httpproxy10) | 是   | 网络全局Http代理配置信息。 |
292
293**错误码**:
294
295以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
296
297| 错误码ID | 错误信息                                                     |
298| -------- | ------------------------------------------------------------ |
299| 9200001  | The application is not an administrator application of the device. |
300| 9200002  | The administrator application does not have permission to manage the device. |
301| 201      | Permission verification failed. The application does not have the permission required to call the API. |
302| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
303
304**示例:**
305
306```ts
307import { Want } from '@kit.AbilityKit';
308import { connection } from '@kit.NetworkKit';
309let wantTemp: Want = {
310  bundleName: 'com.example.myapplication',
311  abilityName: 'EntryAbility',
312};
313let exclusionStr: string = "192.168,baidu.com"
314let exclusionArray: Array<string> = exclusionStr.split(',');
315let httpProxy: connection.HttpProxy = {
316  host: "192.168.xx.xxx",
317  port: 8080,
318  exclusionList: exclusionArray
319};
320
321try {
322  networkManager.setGlobalProxySync(wantTemp, httpProxy);
323  console.info(`Succeeded in setting network global proxy.`);
324} catch (err) {
325  console.error(`Failed to set network global proxy. Code: ${err.code}, message: ${err.message}`);
326}
327```
328
329## networkManager.getGlobalProxySync
330
331getGlobalProxySync(admin: Want): connection.HttpProxy
332
333指定设备管理应用获取网络全局代理。
334
335**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
336
337**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
338
339
340**参数:**
341
342| 参数名 | 类型                                                    | 必填 | 说明           |
343| ------ | ------------------------------------------------------- | ---- | -------------- |
344| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
345
346**返回值:**
347
348| 类型                                                         | 说明                           |
349| ------------------------------------------------------------ | ------------------------------ |
350| [connection.HttpProxy](../apis-network-kit/js-apis-net-connection.md#httpproxy10) | 返回网络全局Http代理配置信息。 |
351
352**错误码**:
353
354以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
355
356| 错误码ID | 错误信息                                                     |
357| -------- | ------------------------------------------------------------ |
358| 9200001  | The application is not an administrator application of the device. |
359| 9200002  | The administrator application does not have permission to manage the device. |
360| 201      | Permission verification failed. The application does not have the permission required to call the API. |
361| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
362
363**示例:**
364
365```ts
366import { Want } from '@kit.AbilityKit';
367import { BusinessError } from '@kit.BasicServicesKit';
368import { connection } from '@kit.NetworkKit';
369let wantTemp: Want = {
370  bundleName: 'com.example.myapplication',
371  abilityName: 'EntryAbility',
372};
373
374try {
375  let result: connection.HttpProxy = networkManager.getGlobalProxySync(wantTemp);
376  console.info(`Succeeded in getting network global proxy, result : ${JSON.stringify(result)}`);
377} catch (err) {
378  console.error(`Failed to get network global proxy. Code: ${err.code}, message: ${err.message}`);
379}
380```
381
382## networkManager.addFirewallRule
383
384addFirewallRule(admin: Want, firewallRule: FirewallRule): void
385
386指定设备管理应用为设备添加防火墙过滤规则。<br/>
387添加了[Action](#action)为ALLOW规则后,将会默认添加DENY规则,不在ALLOW规则之内的网络数据包将会被丢弃或拦截。
388
389**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
390
391**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
392
393
394**参数:**
395
396| 参数名       | 类型                                                    | 必填 | 说明                 |
397| ------------ | ------------------------------------------------------- | ---- | -------------------- |
398| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。       |
399| firewallRule | [FirewallRule](#firewallrule)                           | 是   | 添加防火墙过滤规则。 |
400
401**错误码**:
402
403以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
404
405| 错误码ID | 错误信息                                                     |
406| -------- | ------------------------------------------------------------ |
407| 9200001  | The application is not an administrator application of the device. |
408| 9200002  | The administrator application does not have permission to manage the device. |
409| 201      | Permission verification failed. The application does not have the permission required to call the API. |
410| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
411
412**示例:**
413
414```ts
415import { Want } from '@kit.AbilityKit';
416
417let wantTemp: Want = {
418  bundleName: 'com.example.myapplication',
419  abilityName: 'EntryAbility',
420};
421let firewallRule: networkManager.FirewallRule = {
422  "srcAddr": "192.168.1.1-192.188.22.66",
423  "destAddr": "10.1.1.1",
424  "srcPort": "8080",
425  "destPort": "8080",
426  "appUid": "9696",
427  "direction": networkManager.Direction.OUTPUT,
428  "action": networkManager.Action.DENY,
429  "protocol": networkManager.Protocol.UDP,
430}
431
432networkManager.addFirewallRule(wantTemp, firewallRule);
433```
434
435## networkManager.removeFirewallRule
436
437removeFirewallRule(admin: Want, firewallRule?: FirewallRule): void
438
439指定设备管理应用移除设备防火墙过滤规则。<br/>
440移除规则后如果不存在[Action](#action)为ALLOW规则后,会将[addFirewallRule](#networkmanageraddfirewallrule)添加的默认DENY规则清空。
441
442**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
443
444**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
445
446
447**参数:**
448
449| 参数名       | 类型                                                    | 必填 | 说明                                                 |
450| ------------ | ------------------------------------------------------- | ---- | ---------------------------------------------------- |
451| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                       |
452| firewallRule | [FirewallRule](#firewallrule)                           | 否   | 移除防火墙过滤规则。值为空时,清空所有的防火墙规则。 |
453
454**错误码**:
455
456以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
457
458| 错误码ID | 错误信息                                                     |
459| -------- | ------------------------------------------------------------ |
460| 9200001  | The application is not an administrator application of the device. |
461| 9200002  | The administrator application does not have permission to manage the device. |
462| 201      | Permission verification failed. The application does not have the permission required to call the API. |
463| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
464
465**示例:**
466
467```ts
468import { Want } from '@kit.AbilityKit';
469
470let wantTemp: Want = {
471  bundleName: 'com.example.myapplication',
472  abilityName: 'EntryAbility',
473};
474// 移除指定的规则
475let firewallRule: networkManager.FirewallRule = {
476  "srcAddr": "192.168.1.1-192.188.22.66",
477  "destAddr": "10.1.1.1",
478  "srcPort": "8080",
479  "destPort": "8080",
480  "appUid": "9696",
481  "direction": networkManager.Direction.OUTPUT,
482  "action": networkManager.Action.DENY,
483  "protocol": networkManager.Protocol.UDP,
484}
485networkManager.removeFirewallRule(wantTemp, firewallRule);
486
487// 清空所有规则
488networkManager.removeFirewallRule(wantTemp);
489```
490
491## networkManager.getFirewallRules
492
493getFirewallRules(admin: Want): Array\<FirewallRule>
494
495指定设备管理应用查询防火墙过滤规则。
496
497**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
498
499**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
500
501
502**参数:**
503
504| 参数名 | 类型                                                    | 必填 | 说明           |
505| ------ | ------------------------------------------------------- | ---- | -------------- |
506| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
507
508**返回值:**
509
510| 类型                                  | 说明                                                         |
511| ------------------------------------- | ------------------------------------------------------------ |
512| Array\<[FirewallRule](#firewallrule)> | 返回当前设备配置的防火墙过滤规则列表,当方法调用错误时会抛出异常。 |
513
514**错误码**:
515
516以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
517
518| 错误码ID | 错误信息                                                     |
519| -------- | ------------------------------------------------------------ |
520| 9200001  | The application is not an administrator application of the device. |
521| 9200002  | The administrator application does not have permission to manage the device. |
522| 201      | Permission verification failed. The application does not have the permission required to call the API. |
523| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
524
525**示例:**
526
527```ts
528import { Want } from '@kit.AbilityKit';
529
530let wantTemp: Want = {
531  bundleName: 'com.example.myapplication',
532  abilityName: 'EntryAbility',
533};
534let firewallRule: Array<networkManager.FirewallRule>;
535firewallRule = networkManager.getFirewallRules(wantTemp);
536```
537
538## networkManager.addDomainFilterRule
539
540addDomainFilterRule(admin: Want, domainFilterRule: DomainFilterRule): void
541
542指定设备管理应用为设备添加域名过滤规则。<br/>
543添加了[Action](#action)为ALLOW规则后,将会默认添加DENY规则,不在ALLOW规则之内的域名解析数据包将会被丢弃或拦截。
544
545**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
546
547**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
548
549
550**参数:**
551
552| 参数名           | 类型                                                    | 必填 | 说明               |
553| ---------------- | ------------------------------------------------------- | ---- | ------------------ |
554| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。     |
555| domainFilterRule | [DomainFilterRule](#domainfilterrule)                   | 是   | 添加域名过滤规则。 |
556
557**错误码**:
558
559以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
560
561| 错误码ID | 错误信息                                                     |
562| -------- | ------------------------------------------------------------ |
563| 9200001  | The application is not an administrator application of the device. |
564| 9200002  | The administrator application does not have permission to manage the device. |
565| 201      | Permission verification failed. The application does not have the permission required to call the API. |
566| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
567
568**示例:**
569
570```ts
571import { Want } from '@kit.AbilityKit';
572
573let wantTemp: Want = {
574  bundleName: 'com.example.myapplication',
575  abilityName: 'EntryAbility',
576};
577let domainFilterRule: networkManager.DomainFilterRule = {
578  "domainName": "www.example.com",
579  "appUid": "9696",
580  "action": networkManager.Action.DENY,
581}
582
583networkManager.addDomainFilterRule(wantTemp, domainFilterRule);
584```
585
586## networkManager.removeDomainFilterRule
587
588removeDomainFilterRule(admin: Want, domainFilterRule?: DomainFilterRule): void
589
590指定设备管理应用移除设备域名过滤规则。<br/>
591移除规则后如果不存在[Action](#action)为ALLOW规则后,会将[addDomainFilterRule](#networkmanageradddomainfilterrule)添加的默认DENY规则清空。
592
593**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
594
595**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
596
597
598**参数:**
599
600| 参数名           | 类型                                                    | 必填 | 说明                                             |
601| ---------------- | ------------------------------------------------------- | ---- | ------------------------------------------------ |
602| admin            | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                   |
603| domainFilterRule | [DomainFilterRule](#domainfilterrule)                   | 否   | 移除域名过滤规则。值为空时,清空所有的域名规则。 |
604
605**错误码**:
606
607以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
608
609| 错误码ID | 错误信息                                                     |
610| -------- | ------------------------------------------------------------ |
611| 9200001  | The application is not an administrator application of the device. |
612| 9200002  | The administrator application does not have permission to manage the device. |
613| 201      | Permission verification failed. The application does not have the permission required to call the API. |
614| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
615
616**示例:**
617
618```ts
619import { Want } from '@kit.AbilityKit';
620
621let wantTemp: Want = {
622  bundleName: 'com.example.myapplication',
623  abilityName: 'EntryAbility',
624};
625// 移除指定的规则
626let domainFilterRule: networkManager.DomainFilterRule = {
627  "domainName": "www.example.com",
628  "appUid": "9696",
629  "action": networkManager.Action.DENY,
630}
631networkManager.removeDomainFilterRule(wantTemp, domainFilterRule);
632
633// 清空所有规则
634networkManager.removeDomainFilterRule(wantTemp);
635```
636
637## networkManager.getDomainFilterRules
638
639getDomainFilterRules(admin: Want): Array\<DomainFilterRule>
640
641指定设备管理应用查询域名过滤规则。
642
643**需要权限:** ohos.permission.ENTERPRISE_MANAGE_NETWORK
644
645**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
646
647
648**参数:**
649
650| 参数名 | 类型                                                    | 必填 | 说明           |
651| ------ | ------------------------------------------------------- | ---- | -------------- |
652| admin  | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。 |
653
654**返回值:**
655
656| 类型                                          | 说明                                                         |
657| --------------------------------------------- | ------------------------------------------------------------ |
658| Array\<[DomainFilterRule](#domainfilterrule)> | 返回当前设备配置的域名过滤规则列表,当方法调用错误时会抛出异常。 |
659
660**错误码**:
661
662以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
663
664| 错误码ID | 错误信息                                                     |
665| -------- | ------------------------------------------------------------ |
666| 9200001  | The application is not an administrator application of the device. |
667| 9200002  | The administrator application does not have permission to manage the device. |
668| 201      | Permission verification failed. The application does not have the permission required to call the API. |
669| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
670
671**示例:**
672
673```ts
674import { Want } from '@kit.AbilityKit';
675
676let wantTemp: Want = {
677  bundleName: 'com.example.myapplication',
678  abilityName: 'EntryAbility',
679};
680let domainFilterRule: Array<networkManager.DomainFilterRule>;
681domainFilterRule = networkManager.getDomainFilterRules(wantTemp);
682```
683
684## FirewallRule
685
686防火墙过滤规则。
687
688**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
689
690
691| 名称      | 类型                    | 必填 | 说明                                                         |
692| --------- | ----------------------- | ---- | ------------------------------------------------------------ |
693| srcAddr   | string                  | 否   | ip源地址。支持IP段,例如:192.168.0.0/22或者192.168.1.100-192.168.1.200 |
694| destAddr  | string                  | 否   | ip目标地址。支持IP段,例如:192.168.0.0/22或者192.168.1.100-192.168.1.200 |
695| srcPort   | string                  | 否   | 源端口。                                                     |
696| destPort  | string                  | 否   | 目标端口。                                                   |
697| appUid    | string                  | 否   | 应用uid。                                                    |
698| direction | [Direction](#direction) | 否   | 规则链。<br/>添加防护墙过滤规则时必填;移除防火墙时非必填,表示清空所有的[Direction](#direction)链。<br/>当值为空时srcAddr,destAddr,srcPort,destPort,appUid也必须传入空值。 |
699| action    | [Action](#action)       | 否   | 接收或者丢弃数据包。<br/>添加防护墙过滤规则时必填;移除防火墙时非必填,表示清空所有的匹配[Action](#action)规则的链。<br/>当值为空时srcAddr,destAddr,srcPort,destPort,appUid也必须传入空值。 |
700| protocol  | [Protocol](#protocol)   | 否   | 网络协议。当值为ALL或者ICMP时,不允许设置srcPort与destPort。 |
701
702## DomainFilterRule
703
704域名过滤规则。
705
706**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
707
708
709| 名称       | 类型              | 必填 | 说明                                                         |
710| ---------- | ----------------- | ---- | ------------------------------------------------------------ |
711| domainName | string            | 否   | 域名。添加域名过滤规则时必填。                               |
712| appUid     | string            | 否   | 应用uid。                                                    |
713| action     | [Action](#action) | 否   | 接收或者丢弃数据包。<br/>添加域名过滤规则时必填;移除域名过滤规则时非必填,表示清空所有的匹配[Action](#action)规则的链。<br/>当值为空时,domainName,appUid也必须传入空值。 |
714
715## Direction
716
717规则链。
718
719**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
720
721
722| 名称   | 值   | 说明     |
723| ------ | ---- | -------- |
724| INPUT  | 0    | 输入链。 |
725| OUTPUT | 1    | 输出链。 |
726
727## Action
728
729数据包的行为。
730
731**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
732
733
734| 名称  | 值   | 说明         |
735| ----- | ---- | ------------ |
736| ALLOW | 0    | 接收数据包。 |
737| DENY  | 1    | 丢弃数据包。 |
738
739## Protocol
740
741网络协议。
742
743**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
744
745
746| 名称 | 值   | 说明           |
747| ---- | ---- | -------------- |
748| ALL  | 0    | 全部网络协议。 |
749| TCP  | 1    | 网络协议TCP。  |
750| UDP  | 2    | 网络协议UDP。  |
751| ICMP | 3    | 网络协议ICMP。 |