-
Notifications
You must be signed in to change notification settings - Fork 0
/
ip_rule.go
55 lines (42 loc) · 1.51 KB
/
ip_rule.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
51
52
53
54
55
package antibrut
// IPRuleID это идентификатор IPRule.
type IPRuleID int64
// IPRuleType тип IPRule.
type IPRuleType uint
const (
// WhiteList это тип белого списка.
WhiteList IPRuleType = iota + 1
// BlackList это тип черного списка.
BlackList
)
// IPRule особое правило для IP адреса.
type IPRule struct {
// ID идентификатор.
ID IPRuleID
// Type это тип особого правила.
Type IPRuleType
// Subnet это подсеть, на которую действует особое правило.
Subnet Subnet
}
// IPRuleUpdate структура для обновления IPRule.
type IPRuleUpdate struct {
// Type это тип особого правила.
Type IPRuleType
// Subnet это подсеть, на которую действует особое правило.
Subnet Subnet
}
// IsWhiteList имеет ли особое правило тип - "белый список"?
func (r IPRule) IsWhiteList() bool {
return r.Type == WhiteList
}
// IsBlackList имеет ли особое правило тип - "черный список"?
func (r IPRule) IsBlackList() bool {
return r.Type == BlackList
}
// IPRuleFilter фильтрация особых правил для IP.
type IPRuleFilter struct {
// Type это тип особого правила.
Type IPRuleType
// Subnet это подсеть, на которую действует особое правило.
Subnet Subnet
}