modeling

package
v0.0.0-...-4aea6f0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: BSD-2-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddressContainer

type AddressContainer interface {
	AddIP(toAdd *net.IP) bool
	AddIPs(toAdd []*net.IP, emitFreq int) (int, int)
	GetAllIPs() []*net.IP
	GetIPsInRange(fromRange *net.IPNet) ([]*net.IP, error)
	CountIPsInRange(fromRange *net.IPNet) (uint32, error)
	ContainsIP(toCheck *net.IP) bool
	CountIPsInGenRange(fromRange *GenRange) int
	GetIPsInGenRange(fromRange *GenRange) []*net.IP
	Size() int
}

type AddressTree

type AddressTree struct {
	ChildrenCount uint32                     `msgpack:"c"`
	Children      map[uint8]*AddressTreeNode `msgpack:"h"`
}

func CreateFromAddresses

func CreateFromAddresses(toAdd []*net.IP, emitFreq int) *AddressTree

func LoadAddressTreeFromFile

func LoadAddressTreeFromFile(filePath string) (*AddressTree, error)

func (*AddressTree) AddIP

func (addrTree *AddressTree) AddIP(toAdd *net.IP) bool

func (*AddressTree) AddIPs

func (addrTree *AddressTree) AddIPs(toAdd []*net.IP, emitFreq int) (int, int)

func (*AddressTree) ContainsIP

func (addrTree *AddressTree) ContainsIP(toCheck *net.IP) bool

func (*AddressTree) CountIPsInGenRange

func (addrTree *AddressTree) CountIPsInGenRange(fromRange *GenRange) int

func (*AddressTree) CountIPsInRange

func (addrTree *AddressTree) CountIPsInRange(fromRange *net.IPNet) (uint32, error)

func (*AddressTree) GetAllIPs

func (addrTree *AddressTree) GetAllIPs() []*net.IP

func (*AddressTree) GetIPsInGenRange

func (addrTree *AddressTree) GetIPsInGenRange(fromRange *GenRange) []*net.IP

func (*AddressTree) GetIPsInRange

func (addrTree *AddressTree) GetIPsInRange(fromRange *net.IPNet) ([]*net.IP, error)

func (*AddressTree) Save

func (addrTree *AddressTree) Save(filePath string) error

func (*AddressTree) Size

func (addrTree *AddressTree) Size() int

type AddressTreeNode

type AddressTreeNode struct {
	ChildrenCount uint32                     `msgpack:"c"`
	Children      map[uint8]*AddressTreeNode `msgpack:"h"`
	Depth         int                        `msgpack:"d"`
}

type BinaryAddressContainer

type BinaryAddressContainer struct {
	// contains filtered or unexported fields
}

func ContainerFromAddrs

func ContainerFromAddrs(toProcess []*net.IP) *BinaryAddressContainer

func EmptyContainer

func EmptyContainer() *BinaryAddressContainer

func (*BinaryAddressContainer) AddIP

func (container *BinaryAddressContainer) AddIP(toAdd *net.IP) bool

func (*BinaryAddressContainer) AddIPs

func (container *BinaryAddressContainer) AddIPs(toAdd []*net.IP, emitFreq int) (int, int)

func (*BinaryAddressContainer) ContainsIP

func (container *BinaryAddressContainer) ContainsIP(toCheck *net.IP) bool

func (*BinaryAddressContainer) CountIPsInGenRange

func (container *BinaryAddressContainer) CountIPsInGenRange(fromRange *GenRange) int

func (*BinaryAddressContainer) CountIPsInRange

func (container *BinaryAddressContainer) CountIPsInRange(fromRange *net.IPNet) (uint32, error)

func (*BinaryAddressContainer) GetAllIPs

func (container *BinaryAddressContainer) GetAllIPs() []*net.IP

func (*BinaryAddressContainer) GetIPsInGenRange

func (container *BinaryAddressContainer) GetIPsInGenRange(fromRange *GenRange) []*net.IP

func (*BinaryAddressContainer) GetIPsInRange

func (container *BinaryAddressContainer) GetIPsInRange(fromRange *net.IPNet) ([]*net.IP, error)

func (*BinaryAddressContainer) Size

func (container *BinaryAddressContainer) Size() int

type ClusterModel

type ClusterModel struct {
	ClusterSet   *ClusterSet     `msgpack:"c"`
	NybbleCounts []map[uint8]int `msgpack:"n"`
	// contains filtered or unexported fields
}

func CreateClusteringModel

func CreateClusteringModel(fromAddrs []*net.IP) *ClusterModel

func LoadModelFromBytes

func LoadModelFromBytes(fromBytes []byte) (*ClusterModel, error)

func LoadModelFromFile

func LoadModelFromFile(filePath string) (*ClusterModel, error)

func (*ClusterModel) GenerateAddress

func (clusterModel *ClusterModel) GenerateAddress(jitter float64) *net.IP

func (*ClusterModel) GenerateAddresses

func (clusterModel *ClusterModel) GenerateAddresses(generateCount int, jitter float64) []*net.IP

func (*ClusterModel) GenerateAddressesFromNetwork

func (clusterModel *ClusterModel) GenerateAddressesFromNetwork(generateCount int, jitter float64, network *net.IPNet) ([]*net.IP, error)

func (*ClusterModel) GenerateAddressesFromNetworkWithCallback

func (clusterModel *ClusterModel) GenerateAddressesFromNetworkWithCallback(generateCount int, jitter float64, network *net.IPNet, fn addrProcessFunc) ([]*net.IP, error)

func (*ClusterModel) Save

func (clusterModel *ClusterModel) Save(filePath string) error

type ClusterSet

type ClusterSet struct {
	Clusters  []*GenCluster `msgpack:"c"`
	Captured  int           `msgpack:"a"`
	RangeSize int           `msgpack:"s"`
	Density   float64       `msgpack:"d"`
}

func LoadClusterSetFromFile

func LoadClusterSetFromFile(filePath string) (*ClusterSet, error)

func (*ClusterSet) AddCluster

func (clusterSet *ClusterSet) AddCluster(toAdd *GenCluster, withUpdate bool)

func (*ClusterSet) AddClusters

func (clusterSet *ClusterSet) AddClusters(toAdd []*GenCluster)

func (*ClusterSet) GenerateAddresses

func (clusterSet *ClusterSet) GenerateAddresses(generateCount int, jitter float64) []*net.IP

func (*ClusterSet) ResetCounts

func (clusterSet *ClusterSet) ResetCounts(corpus AddressContainer)

func (*ClusterSet) Save

func (clusterSet *ClusterSet) Save(filePath string) error

type GenCluster

type GenCluster struct {
	Range    *GenRange `msgpack:"r"`
	Captured int       `msgpack:"c"`
	Density  float64   `msgpack:"d"`
	Size     int       `msgpack:"s"`
}

type GenRange

type GenRange struct {
	AddrNybbles []uint8                `msgpack:"n"`
	WildIndices map[int]internal.Empty `msgpack:"w"`
}

func GetGenRangeFromIPs

func GetGenRangeFromIPs(fromIPs []*net.IP) *GenRange

func (*GenRange) AddIP

func (genRange *GenRange) AddIP(toAdd *net.IP)

func (*GenRange) AddIPs

func (genRange *GenRange) AddIPs(toAdd []*net.IP)

func (*GenRange) Contains

func (genRange *GenRange) Contains(toCheck *GenRange) bool

func (*GenRange) Copy

func (genRange *GenRange) Copy() *GenRange

func (*GenRange) CopyWithIPs

func (genRange *GenRange) CopyWithIPs(newIPs []*net.IP) *GenRange

func (*GenRange) CopyWithIndices

func (genRange *GenRange) CopyWithIndices(newIndices []int) *GenRange

func (*GenRange) Equals

func (genRange *GenRange) Equals(otherRange *GenRange) bool

func (*GenRange) GetIP

func (genRange *GenRange) GetIP() *net.IP

func (*GenRange) GetMask

func (genRange *GenRange) GetMask() *GenRangeMask

func (*GenRange) GetTreeNybbles

func (genRange *GenRange) GetTreeNybbles() []uint16

func (*GenRange) Size

func (genRange *GenRange) Size() float64

type GenRangeMask

type GenRangeMask struct {
	FirstMask      uint64
	FirstExpected  uint64
	FirstMin       uint64
	FirstMax       uint64
	SecondMask     uint64
	SecondExpected uint64
	SecondMin      uint64
	SecondMax      uint64
}

type RangeTree

type RangeTree struct {
	ChildrenCount uint64
	Children      map[uint16]*RangeTreeNode
}

func NewRangeTree

func NewRangeTree() *RangeTree

func NewRangeTreeFromRanges

func NewRangeTreeFromRanges(toAdd []*GenRange) *RangeTree

func (*RangeTree) AddRange

func (rangeTree *RangeTree) AddRange(toAdd *GenRange) bool

func (*RangeTree) AddRanges

func (rangeTree *RangeTree) AddRanges(toAdd []*GenRange) (int, int)

func (*RangeTree) ContainsRange

func (rangeTree *RangeTree) ContainsRange(toCheck *GenRange) bool

type RangeTreeNode

type RangeTreeNode struct {
	ChildrenCount uint64
	Children      map[uint16]*RangeTreeNode
	Depth         int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL