• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.net.netFirewall (Network Firewall)
2
3The **netFirewall** module implements the firewall query functionality. It allows applications to query the firewall interception records of the device.
4
5
6
7> **NOTE**
8>
9> The initial APIs of this module are supported since API version 15. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10
11## Modules to Import
12
13```ts
14import { netfirewall } from '@kit.NetworkKit';
15```
16
17
18## netFirewall.getNetFirewallPolicy
19
20getNetFirewallPolicy(userId: number): Promise\<NetFirewallPolicy>
21
22Obtains a firewall policy.
23
24**Required permission**: ohos.permission.GET_NET_FIREWALL
25
26**System capability**: SystemCapability.Communication.NetManager.NetFirewall
27
28**Parameters**
29
30| Name  | Type                  | Mandatory| Description                                          |
31| -------- | ---------------------- | ---- | ---------------------------------------------- |
32| userId   | number                 | Yes  | Existing user ID.  |
33
34**Return value**
35
36| Type                                             | Description                                 |
37| ------------------------------------------------- | ------------------------------------- |
38| Promise\<[NetFirewallPolicy](#netfirewallpolicy)> | Promise used to return the result, which is a firewall policy.|
39
40
41**Error codes**
42
43For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
44| ID| Error Message                                           |
45| -------  | ----------------------------------------------------|
46| 201      | Permission denied.                                  |
47| 401      | Parameter error.                                    |
48| 2100001  | Invalid parameter value.                            |
49| 2100002  | Operation failed. Cannot connect to service.        |
50| 2100003  | System internal error.                              |
51| 29400000 | The specified user does not exist.                  |
52
53**Example**
54
55```ts
56import { netFirewall } '@kit.NetworkKit';
57import { BusinessError } from '@kit.BasicServicesKit';
58
59netFirewall.getNetFirewallPolicy(100).then((result: netFirewall.NetFirewallPolicy) => {
60  console.info('firewall policy: ', JSON.stringify(result));
61}, (reason: BusinessError) => {
62  console.error('get firewall policy failed: ', JSON.stringify(reason));
63});
64```
65
66
67## netFirewall.updateNetFirewallRule
68
69updateNetFirewallRule(rule: NetFirewallRule): Promise\<void>
70
71Updates a firewall rule.
72
73**Required permission**: ohos.permission.MANAGE_NET_FIREWALL
74
75**System capability**: SystemCapability.Communication.NetManager.NetFirewall
76
77**Parameters**
78
79| Name | Type                                  | Mandatory| Description                            |
80| ------- | -------------------------------------- | ---- | -------------------------------- |
81| rule    | [NetFirewallRule](#netfirewallrule)    | Yes  | Firewall rule.                    |
82
83**Return value**
84
85| Type                | Description                                                               |
86| -------------------  | ------------------------------------------------------------------- |
87| Promise\<void>       | Promise that returns no value.                               |
88
89**Error codes**
90
91For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
92| ID| Error Message                                                                       |
93| -------  | ------------------------------------------------------------------------------- |
94| 201      | Permission denied.                                                              |
95| 401      | Parameter error.                                                                |
96| 2100001  | Invalid parameter value.                                                        |
97| 2100002  | Operation failed. Cannot connect to service.                                    |
98| 2100003  | System internal error.                                                          |
99| 29400000 | The specified user does not exist.                                              |
100| 29400002 | The number of IP address rules in the firewall rule exceeds the maximum.        |
101| 29400003 | The number of port rules in the firewall rule exceeds the maximum.              |
102| 29400004 | The number of domain rules in the firewall rule exceeds the maximum.            |
103| 29400005 | The number of domain rules exceeds the maximum.                                 |
104| 29400006 | The specified rule does not exist.                                              |
105| 29400007 | The dns rule is duplication.                                                    |
106
107**Example**
108
109```ts
110import { netFirewall } '@kit.NetworkKit';
111import { BusinessError } from '@kit.BasicServicesKit';
112
113let ipRuleUpd: netFirewall.NetFirewallRule = {
114  id: 1,
115  name: "rule1",
116  description: "rule1 description update",
117  direction: netFirewall.NetFirewallRuleDirection.RULE_IN,
118  action:netFirewall.NetFirewallRuleDirection.RULE_DENY,
119  type: netFirewall.NetFirewallRuleType.RULE_IP,
120  isEnabled: false,
121  appUid: 20001,
122  localIps: [
123    {
124      family: 1,
125      type: 1,
126      address: "10.10.1.1",
127      mask: 24
128    },{
129      family: 1,
130      type: 2,
131      startIp: "10.20.1.1",
132      endIp: "10.20.1.10"
133    }],
134  userId: 100
135};
136netFirewall.updateNetFirewallRule(ipRuleUpd).then(() => {
137  console.info('update firewall rule success.');
138}, (reason: BusinessError) => {
139  console.error('update firewall rule failed: ', JSON.stringify(reason));
140});
141```
142
143## netFirewall.removeNetFirewallRule
144
145removeNetFirewallRule(userId: number, ruleId: number): Promise\<void>
146
147Removes a firewall rule.
148
149**Required permission**: ohos.permission.MANAGE_NET_FIREWALL
150
151**System capability**: SystemCapability.Communication.NetManager.NetFirewall
152
153**Parameters**
154
155| Name  | Type                            | Mandatory| Description                                        |
156| -------- | ----------------------------------- | ---- | -------------------------------------------- |
157| rule     | [NetFirewallRule](#netfirewallrule) | Yes  | Firewall rule.                                |
158| userId   | number                              | Yes  | Existing user ID.    |
159| ruleId   | number                              | Yes  | ID of the firewall rule.                              |
160
161**Return value**
162
163| Type               | Description                                                                |
164| ------------------- | ---------------------------------------------------------------------|
165| Promise\<void>      | Promise that returns no value.                                |
166
167**Error codes**
168
169For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
170| ID| Error Message                                                                       |
171| -------  | ------------------------------------------------------------------------------- |
172| 201      | Permission denied.                                                              |
173| 401      | Parameter error.                                                                |
174| 2100001  | Invalid parameter value.                                                        |
175| 2100002  | Operation failed. Cannot connect to service.                                    |
176| 2100003  | System internal error.                                                          |
177| 29400000 | The specified user does not exist.                                              |
178| 29400006 | The specified rule does not exist.                                              |
179
180**Example**
181
182```ts
183import { netFirewall } '@kit.NetworkKit';
184import { BusinessError } from '@kit.BasicServicesKit';
185
186netFirewall.removeNetFirewallRule(100, 1).then(() => {
187  console.info("delete firewall rule success.");
188}).catch((error : BusinessError) => {
189  console.error("delete firewall rule failed: " + JSON.stringify(error));
190});
191```
192
193## netFirewall.getNetFirewallRules
194
195getNetFirewallRules(userId: number, requestParam: RequestParam): Promise\<FirewallRulePage>
196
197Obtains firewall rules by user ID. You need to specify the pagination query parameter when calling this API.
198
199**Required permission**: ohos.permission.GET_NET_FIREWALL
200
201**System capability**: SystemCapability.Communication.NetManager.NetFirewall
202
203**Parameters**
204
205| Name         | Type                         | Mandatory| Description                                        |
206| --------------- | ----------------------------- | ---- | -------------------------------------------- |
207| userId          | number                        | Yes  | Existing user ID.    |
208| requestParam    | [RequestParam](#requestparam) | Yes  | Pagination query parameter.                              |
209
210**Return value**
211
212| Type                                           | Description                                    |
213| ----------------------------------------------- | ---------------------------------------- |
214| Promise\<[FirewallRulePage](#firewallrulepage)> | Promise used to return the result, which is list of firewall rules.   |
215
216**Error codes**
217
218For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
219| ID| Error Message                                                                       |
220| -------  | --------------------------------------------------------------------------------|
221| 201      | Permission denied.                                                              |
222| 401      | Parameter error.                                                                |
223| 2100001  | Invalid parameter value.                                                        |
224| 2100002  | Operation failed. Cannot connect to service.                                    |
225| 2100003  | System internal error.                                                          |
226| 29400000 | The specified user does not exist.                                              |
227
228**Example**
229
230```ts
231import { netFirewall } '@kit.NetworkKit';
232import { BusinessError } from '@kit.BasicServicesKit';
233
234let ruleParam: netFirewall.RequestParam = {
235  page: 1,
236  pageSize: 10,
237  orderField: netFirewall.NetFirewallOrderField.ORDER_BY_RULE_NAME,
238  orderType: netFirewall.NetFirewallOrderType.ORDER_ASC
239};
240netFirewall.getNetFirewallRules(100, ruleParam).then((result: netfirewall.FirewallRulePage) => {
241  console.info("result:", JSON.stringify(result));
242}, (error: BusinessError) => {
243  console.error("get firewall rules failed: " + JSON.stringify(error));
244});
245```
246
247## netFirewall.getNetFirewallRule
248
249getNetFirewallRule(userId: number, ruleId: number): Promise\<NetFirewallRule>
250
251Obtains a firewall rule based on the specified user ID and rule ID.
252
253**Required permission**: ohos.permission.GET_NET_FIREWALL
254
255**System capability**: SystemCapability.Communication.NetManager.NetFirewall
256
257**Parameters**
258
259| Name  | Type                     | Mandatory| Description                                        |
260| -------- | ------------------------- | ---- | -------------------------------------------- |
261| userId   | number                    | Yes  | Existing user ID.|
262| ruleId   | number                    | Yes  | ID of the firewall rule.                              |
263
264**Return value**
265
266| Type                                           | Description                                    |
267| ----------------------------------------------- | ---------------------------------------- |
268| Promise\<[NetFirewallRule](#netfirewallrule)>   | Promise used to return the result, which is a firewall rule.           |
269
270**Error codes**
271
272For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
273| ID| Error Message                                                                       |
274| -------  | ------------------------------------------------------------------------------- |
275| 201      | Permission denied.                                                              |
276| 401      | Parameter error.                                                                |
277| 2100001  | Invalid parameter value.                                                        |
278| 2100002  | Operation failed. Cannot connect to service.                                    |
279| 2100003  | System internal error.                                                          |
280| 29400000 | The specified user does not exist.                                              |
281| 29400006 | The specified rule does not exist.                                              |
282
283**Example**
284
285```ts
286import { netFirewall } '@kit.NetworkKit';
287import { BusinessError } from '@kit.BasicServicesKit';
288
289netFirewall.getNetFirewallRule(100, 1).then((rule: netFirewall.NetFirewallRule) => {
290  console.info("result:", JSON.stringify(rule));
291}).catch((error : BusinessError) => {
292  console.error(" get firewall rules failed: " + JSON.stringify(error));
293});
294```
295
296## netFirewall.setNetFirewallPolicy
297
298setNetFirewallPolicy(userId: number, policy: NetFirewallPolicy): Promise\<void>
299
300Sets a firewall policy.
301
302**Required permission**: ohos.permission.MANAGE_NET_FIREWALL
303
304**System capability**: SystemCapability.Communication.NetManager.NetFirewall
305
306**Parameters**
307
308| Name| Type                                   | Mandatory| Description                                        |
309| ------ | ----------------------------------------| ---- | -------------------------------------------- |
310| userId | number                                  | Yes  | Existing user ID.|
311| policy | [NetFirewallPolicy](#netfirewallpolicy) | Yes  | Firewall policy.                          |
312
313**Return value**
314
315| Type               | Description                                    |
316| ------------------- | ---------------------------------------- |
317| Promise\<void>      | Promise that returns no value.               |
318
319**Error codes**
320
321For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
322| ID| Error Message                                           |
323| -------  | ----------------------------------------------------|
324| 201      | Permission denied.                                  |
325| 401      | Parameter error.                                    |
326| 2100001  | Invalid parameter value.                            |
327| 2100002  | Operation failed. Cannot connect to service.        |
328| 2100003  | System internal error.                              |
329| 29400000 | The specified user does not exist.                  |
330
331**Example**
332
333```ts
334import { netFirewall } '@kit.NetworkKit';
335import { BusinessError } from '@kit.BasicServicesKit';
336
337let policy: netFirewall.NetFirewallPolicy = {
338  isOpen: true,
339  inAction: netFirewall.FirewallRuleAction.RULE_DENY,
340  outAction: netFirewall.FirewallRuleAction.RULE_ALLOW
341};
342netFirewall.setNetFirewallPolicy(100, policy).then(() => {
343  console.info("set firewall policy success.");
344}).catch((error : BusinessError) => {
345  console.error("set firewall policy failed: " + JSON.stringify(error));
346});
347```
348
349## netFirewall.addNetFirewallRule
350
351addNetFirewallRule(rule: NetFirewallRule): Promise\<number>
352
353Adds a firewall rule.
354
355**Required permission**: ohos.permission.MANAGE_NET_FIREWALL
356
357**System capability**: SystemCapability.Communication.NetManager.NetFirewall
358
359**Parameters**
360
361| Name  | Type                                             | Mandatory| Description        |
362| -------- | ------------------------------------------------- | ---- | ------------ |
363| rule    |  [NetFirewallRule](#netfirewallrule)               | Yes  | Firewall rule.|
364
365**Return value**
366
367| Type                     | Description                    	                                  |
368| ------------------------- | ----------------------------------------------------------- |
369| Promise\<number>          | Promise used to return the result, which is the firewall rule ID automatically generated by the system.|
370
371**Error codes**
372
373For details about the error codes, see [Network Connection Management Error Codes](errorcode-net-connection.md) and [Universal Error Codes](../errorcode-universal.md).
374| ID| Error Message                                                                |
375| -------  | ------------------------------------------------------------------------ |
376| 201      | Permission denied.                                                       |
377| 401      | Parameter error.                                                         |
378| 2100001  | Invalid parameter value.                                                 |
379| 2100002  | Operation failed. Cannot connect to service.                             |
380| 2100003  | System internal error.                                                   |
381| 29400000 | The specified user does not exist.                                       |
382| 29400001 | The number of firewall rules exceeds the maximum.                        |
383| 29400002 | The number of IP address rules in the firewall rule exceeds the maximum. |
384| 29400003 | The number of port rules in the firewall rule exceeds the maximum.       |
385| 29400004 | The number of domain rules in the firewall rule exceeds the maximum.     |
386| 29400005 | The number of domain rules exceeds the maximum.                          |
387| 29400007 | The dns rule is duplication.                                             |
388
389**Example**
390
391```ts
392import { netFirewall } '@kit.NetworkKit';
393import { BusinessError } from '@kit.BasicServicesKit';
394
395let ipRule: netFirewall.NetFirewallRule = {
396  name: "rule1",
397  description: "rule1 description",
398  direction: netFirewall.NetFirewallRuleDirection.RULE_IN,
399  action:netFirewall.NetFirewallRuleDirection.RULE_DENY,
400  type: netFirewall.NetFirewallRuleType.RULE_IP,
401  isEnabled: true,
402  appUid: 20001,
403  localIps: [
404    {
405      family: 1,
406      type: 1,
407      address: "10.10.1.1",
408      mask: 24
409    },{
410      family: 1,
411      type: 2,
412      startIp: "10.20.1.1",
413      endIp: "10.20.1.10"
414    }],
415  remoteIps:[
416    {
417      family: 1,
418      type: 1,
419      address: "20.10.1.1",
420      mask: 24
421    },{
422      family: 1,
423      type: 2,
424      startIp: "20.20.1.1",
425      endIp: "20.20.1.10"
426    }],
427  protocol: 6,
428  localPorts: [
429    {
430      startPort: 1000,
431      endPort: 1000
432    },{
433      startPort: 2000,
434      endPort: 2001
435    }],
436  remotePorts: [
437    {
438      startPort: 443,
439      endPort: 443
440    }],
441  userId: 100
442};
443netFirewall.addNetFirewallRule(ipRule).then((result: number) => {
444  console.info('rule Id: ', result);
445}, (reason: BusinessError) => {
446  console.error('add firewall rule failed: ', JSON.stringify(reason));
447});
448
449let domainRule: netFirewall.NetFirewallRule = {
450  name: "rule2",
451  description: "rule2 description",
452  direction: netFirewall.NetFirewallRuleDirection.RULE_IN,
453  action:netFirewall.NetFirewallRuleDirection.RULE_DENY,
454  type: netFirewall.NetFirewallRuleType.RULE_DOMAIN,
455  isEnabled: true,
456  appUid: 20002,
457  domains: [
458    {
459      isWildcard: false,
460      domain: "www.example.cn"
461    },{
462      isWildcard: true,
463      domain: "*.example.cn"
464    }],
465  userId: 100
466};
467netFirewall.addNetFirewallRule(domainRule).then((result: number) => {
468  console.info('rule Id: ', result);
469}, (reason: BusinessError) => {
470  console.error('add firewall rule failed: ', JSON.stringify(reason));
471});
472
473let dnsRule: netFirewall.NetFirewallRule = {
474  name: "rule3",
475  description: "rule3 description",
476  direction: netFirewall.NetFirewallRuleDirection.RULE_IN,
477  action:netFirewall.NetFirewallRuleDirection.RULE_DENY,
478  type: netFirewall.NetFirewallRuleType.RULE_DNS,
479  isEnabled: true,
480  appUid: 20003,
481  primaryDns: "4.4.4.4",
482  standbyDns: "8.8.8.8",
483  userId: 100
484};
485netFirewall.addNetFirewallRule(dnsRule).then((result: number) => {
486  console.info('rule Id: ', result);
487}, (reason: BusinessError) => {
488  console.error('add firewall rule failed: ', JSON.stringify(reason));
489});
490```
491
492## NetFirewallRule
493
494Defines a firewall rule.
495
496**System capability**: SystemCapability.Communication.NetManager.NetFirewall
497
498| Name       | Type                                                       |Mandatory| Description                                                          |
499| ------------|-------------------------------------------------------------|----|--------------------------------------------------------------  |
500| userId      | number                                                      | Yes| Existing user ID.                  |
501| name        | string                                                      | Yes| Rule name. This parameter is mandatory and can contain a maximum of 128 characters.                               |
502| direction   | [NetFirewallRuleDirection](#netfirewallruledirection)       | Yes| Interception direction, which can be inbound or outbound.                                        |
503| action      | [FirewallRuleAction](#firewallruleaction)                   | Yes| Action.                                                        |
504| type        | [NetFirewallRuleType](#netfirewallruletype)                 | Yes| Rule type.                                                    |
505| isEnabled   | boolean                                                     | Yes| Whether to enable the firewall rule.                                                    |
506| id          | number                                                      | No| Firewall rule ID.                                                      |
507| description | string                                                      | No| Firewall rule description. This parameter is optional and can contain a maximum of 256 characters.                               |
508| appUid      | number                                                      | No| Application or service UID.                                           |
509| localIps    | Array\<[NetFirewallIpParams](#netfirewallipparams)>         | No| List of local IP addresses. This parameter is valid when **ruleType** is set to **RULE_IP**. A maximum of 10 local IP addresses are supported.        |
510| remoteIps   | Array\<[NetFirewallIpParams](#netfirewallipparams)>         | No| List of remote IP addresses. This parameter is valid when **ruleType** is set to **RULE_IP**. A maximum of 10 local IP addresses are supported.|
511| protocol    | number                                                      | No| Protocol. The value **6** indicates TCP and value **17** indicates UDP. This parameter is valid only when **ruleType** is set to **RULE_IP**. |
512| localPorts  | Array\<[NetFirewallPortParams](#netfirewallportparams)>     | No| List of local ports. This parameter is valid when **ruleType** is set to **RULE_IP**. A maximum of 10 local ports are supported.  |
513| remotePorts | Array\<[NetFirewallPortParams](#netfirewallportparams)>     | No| List of remote ports. This parameter is valid when **ruleType** is set to **RULE_IP**. A maximum of 10 remote ports are supported.  |
514| domains     | Array\<[NetFirewallDomainParams](#netfirewalldomainparams)> | No| List of domain names. This parameter is valid only when **ruleType** is set to **RULE_DOMAIN**.        |
515| dns         | [NetFirewallDnsParams](#netfirewalldnsparams)               | No| List of DNS server names. This parameter is valid only when **ruleType** is set to **RULE_DNS**.                 |
516
517## RequestParam
518
519Defines query parameters.
520
521**System capability**: SystemCapability.Communication.NetManager.NetFirewall
522
523| Name      | Type                                            | Mandatory| Description                       |
524|------------|--------------------------------------------------|------|---------------------------- |
525| page       | number                                           | Yes  | Page number. The value range is [1,1000].   |
526| pageSize   | number                                           | Yes  | Page size. The value range is [1,50]. |
527| orderField | [NetFirewallOrderField](#netfirewallorderfield)  | Yes  | Sorting order field.                 |
528| orderType  | [NetFirewallOrderType](#netfirewallordertype)    | Yes  | Sorting order type.                 |
529
530
531## FirewallRulePage
532
533Defines the pagination structure for firewall rules.
534
535**System capability**: SystemCapability.Communication.NetManager.NetFirewall
536
537| Name      | Type                                       | Mandatory| Description         |
538|------------|-------------------------------------------- |------|---------------|
539| page       | number                                      | Yes  | Current page.   |
540| pageSize   | number                                      | Yes  | Page size.     |
541| totalPage  | number                                      | Yes  | Total number of pages.     |
542| data       | Array\<[NetFirewallRule](#netfirewallrule)> | Yes  | Page data.   |
543
544## NetFirewallPolicy
545
546Defines a firewall policy.
547
548**System capability**: SystemCapability.Communication.NetManager.NetFirewall
549
550| Name      | Type                                      | Mandatory| Description         |
551| -----------| -------------------------------------------|------|-------------- |
552| isOpen     | boolean                                    | Yes  | Whether to enable or disable the firewall.|
553| inAction   | [FirewallRuleAction](#firewallruleaction)  | Yes  | Inbound action.   |
554| outAction  | [FirewallRuleAction](#firewallruleaction)  | Yes  | Outbound action.   |
555
556## NetFirewallRuleDirection
557
558Enumerates interception directions for firewall rules.
559
560**System capability**: SystemCapability.Communication.NetManager.NetFirewall
561
562| Name        | Value  | Description  |
563|--------------|------|--------|
564| RULE_IN      | 1    | Inbound direction.|
565| RULE_OUT     | 2    | Outbound direction.|
566
567
568## FirewallRuleAction
569
570Enumerates actions for firewall rules.
571
572**System capability**: SystemCapability.Communication.NetManager.NetFirewall
573
574| Name          | Value  | Description  |
575|----------------|------|------- |
576| RULE_ALLOW     | 0    | Allowing network connection.|
577| RULE_DENY      | 1    | Denying network connection.|
578
579## NetFirewallRuleType
580
581Enumerates firewall rule types.
582
583**System capability**: SystemCapability.Communication.NetManager.NetFirewall
584
585| Name          | Value  | Description        |
586|----------------| ---- | ------------ |
587| RULE_IP        | 1    | IP address-based firewall rule.  |
588| RULE_DOMAIN    | 2    | Domain name-based rule.|
589| RULE_DNS       | 3    | DNS-based firewall rule.   |
590
591## NetFirewallOrderField
592
593Enumerates firewall rule sorting types.
594
595**System capability**: SystemCapability.Communication.NetManager.NetFirewall
596
597| Name                 | Value  | Description                  |
598| --------------------- | ---- | --------------------- |
599| ORDER_BY_RULE_NAME    | 1    | Sorting of firewall rules by name.|
600| ORDER_BY_RECORD_TIME  | 100  | Sorting of firewall rules by time.    |
601
602## NetFirewallOrderType
603
604Enumerates firewall rule sorting orders.
605
606**System capability**: SystemCapability.Communication.NetManager.NetFirewall
607
608| Name      | Value  | Description                          |
609| ---------- | ---- | ------------------------------ |
610| ORDER_ASC  | 1    | Sorting in ascending order.|
611| ORDER_DESC | 100  | Sorting in descending order.|
612
613
614## NetFirewallIpParams
615
616**System capability**: SystemCapability.Communication.NetManager.NetFirewall
617
618| Name       | Type  |Mandatory| Description                                                       |
619| ----------- | -------|----|------------------------------------------------------------ |
620| type        | number | Yes| IP address type. The value **1** indicates an IP address or subnet. When a single IP address is used, the mask is 32. The value **2** indicates an IP address segment.         |
621| family      | number | No| IP address family. The value **1** indicates IPv4 and value **2** indicates IPv6. The default value is IPv4. Other values are not supported.                 |
622| address     | string | No| IP address. This parameter is valid only when **type** is set to **1**.                  |
623| mask        | number | No| Subnet mask for an IPv4 address and prefix for an IPv6 address. This parameter is valid only when **type** is set to **1**.|
624| startIp     | string | No| Start IP address: This parameter is valid only when **type** is set to **2**.                  |
625| endIp       | string | No| End IP address: This parameter is valid only when **type** is set to **2**.                  |
626
627## NetFirewallPortParams
628
629Defines the port parameters of a firewall rule.
630
631**System capability**: SystemCapability.Communication.NetManager.NetFirewall
632
633| Name        | Type  | Mandatory| Description      |
634| ------------ | -------|------|----------- |
635| startPort    | number | Yes  | Start port number.|
636| endPort      | number | Yes  | End port number.|
637
638## NetFirewallDomainParams
639
640Defines the domain information of a firewall rule.
641
642**System capability**: SystemCapability.Communication.NetManager.NetFirewall
643
644| Name        | Type   | Mandatory| Description                                     |
645| ------------ | --------|------|------------------------------------------ |
646| isWildcard   | boolean | Yes  | Whether to contain wildcards.                         |
647| domain       | string  | Yes  | DNS domain. If **isWildcard** is **false**, you need to specify the complete domain name.|
648
649## NetFirewallDnsParams
650
651Defines the DNS information of a firewall rule.
652
653**System capability**: SystemCapability.Communication.NetManager.NetFirewall
654
655| Name        | Type   | Mandatory| Description          |
656| ------------ | --------|------|--------------- |
657| primaryDns   | string  | Yes  | Active DNS server.|
658| standbyDns   | string  | No  | Standby DNS server.     |
659