(netIP net.IP)
| 24 | } |
| 25 | |
| 26 | func (this *IPRange) Contains(netIP net.IP) bool { |
| 27 | if netIP == nil { |
| 28 | return false |
| 29 | } |
| 30 | switch this.Type { |
| 31 | case IPRangeTypeCIDR: |
| 32 | if this.CIDR != nil { |
| 33 | return this.CIDR.Contains(netIP) |
| 34 | } |
| 35 | case IPRangeTypeSingeIP: |
| 36 | if this.IPFrom != nil { |
| 37 | return this.IPFrom.Equal(netIP) |
| 38 | } |
| 39 | case IPRangeTypeRange: |
| 40 | return bytes.Compare(this.IPFrom, netIP) <= 0 && bytes.Compare(this.IPTo, netIP) >= 0 |
| 41 | } |
| 42 | return false |
| 43 | } |
| 44 | |
| 45 | type IPRangeList struct { |
| 46 | Ranges []*IPRange |
no outgoing calls