netutil

package
v0.0.0-...-39cdb81 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2019 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

包netutil包含对网络包的扩展。

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckRelayIP

func CheckRelayIP(sender, addr net.IP) error

checkrelayip报告是否从给定的发送方IP中继IP 是有效的连接目标。

有四条规则: -特殊网络地址永远无效。 -如果由回送主机中继,则回送地址正常。 -如果由LAN主机中继,则LAN地址正常。 -所有其他地址始终可以接受。

func IsLAN

func IsLAN(ip net.IP) bool

islan报告IP是否为本地网络地址。

func IsSpecialNetwork

func IsSpecialNetwork(ip net.IP) bool

IsSpecialNetwork报告IP是否位于专用网络范围内 这包括广播、多播和文档地址。

func IsTemporaryError

func IsTemporaryError(err error) bool

IsTemporaryError检查给定的错误是否应被视为临时错误。

func SameNet

func SameNet(bits uint, ip, other net.IP) bool

Samenet报告两个IP地址是否具有相同的给定位长度前缀。

Example
//这将返回true,因为IP在相同的/24网络中:
fmt.Println(SameNet(24, net.IP{127, 0, 0, 1}, net.IP{127, 0, 0, 3}))
//此调用返回错误:
fmt.Println(SameNet(24, net.IP{127, 3, 0, 1}, net.IP{127, 5, 0, 3}))
// 输出:
// 真
// 假
Output:

Types

type DistinctNetSet

type DistinctNetSet struct {
	Subnet uint //公共前缀位数
	Limit  uint //每个子网中的最大IP数
	// contains filtered or unexported fields
}

DistinctNetset跟踪IP,确保最多N个IP 属于同一网络范围。

func (*DistinctNetSet) Add

func (s *DistinctNetSet) Add(ip net.IP) bool

添加将IP地址添加到集合中。如果 定义范围内的现有IP数超过限制。

func (DistinctNetSet) Contains

func (s DistinctNetSet) Contains(ip net.IP) bool

包含给定IP是否包含在集合中。

func (DistinctNetSet) Len

func (s DistinctNetSet) Len() int

len返回跟踪的IP数。

func (*DistinctNetSet) Remove

func (s *DistinctNetSet) Remove(ip net.IP)

移除从集合中移除IP。

func (DistinctNetSet) String

func (s DistinctNetSet) String() string

字符串实现fmt.stringer

type IPTracker

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

IPtracker预测本地主机的外部端点,即IP地址和端口 基于其他主机的语句。

func NewIPTracker

func NewIPTracker(window, contactWindow time.Duration, minStatements int) *IPTracker

newiptracker创建一个IP跟踪器。

窗口参数配置保留的过去网络事件的数量。这个 minStatements参数强制执行必须记录的最小语句数 在做出任何预测之前。这些参数的值越高,则“拍打”越小。 网络条件变化时的预测。窗口持续时间值通常应在 分钟的范围。

func (*IPTracker) AddContact

func (it *IPTracker) AddContact(host string)

addcontact记录包含端点信息的数据包已发送到 某些宿主。

func (*IPTracker) AddStatement

func (it *IPTracker) AddStatement(host, endpoint string)

addStatement记录某个主机认为我们的外部端点是给定的端点。

func (*IPTracker) PredictEndpoint

func (it *IPTracker) PredictEndpoint() string

PredictEndPoint返回外部终结点的当前预测。

func (*IPTracker) PredictFullConeNAT

func (it *IPTracker) PredictFullConeNAT() bool

PredictTfullconenat检查本地主机是否位于全锥NAT之后。它预测 正在检查是否已从以前未联系的节点接收到任何语句 声明已作出。

type Netlist

type Netlist []net.IPNet

netlist是IP网络的列表。

func ParseNetlist

func ParseNetlist(s string) (*Netlist, error)

ParseNetList解析CIDR掩码的逗号分隔列表。 空白和多余的逗号将被忽略。

func (*Netlist) Add

func (l *Netlist) Add(cidr string)

添加分析CIDR掩码并将其附加到列表中。它对无效的掩码感到恐慌,并且 用于设置静态列表。

func (*Netlist) Contains

func (l *Netlist) Contains(ip net.IP) bool

包含报告给定IP是否包含在列表中。

func (Netlist) MarshalTOML

func (l Netlist) MarshalTOML() interface{}

marshaltoml实现toml.marshalerrec。

func (*Netlist) UnmarshalTOML

func (l *Netlist) UnmarshalTOML(fn func(interface{}) error) error

unmarshaltoml实现toml.unmarshalerrec。

Jump to

Keyboard shortcuts

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