netutil

package
v0.0.0-...-b78b3a4 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2019 License: GPL-3.0 Imports: 6 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 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