net

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2026 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AddressFamilyIPv4 represents address as IPv4
	AddressFamilyIPv4 = AddressFamily(0)

	// AddressFamilyIPv6 represents address as IPv6
	AddressFamilyIPv6 = AddressFamily(1)

	// AddressFamilyDomain represents address as Domain
	AddressFamilyDomain = AddressFamily(2)
)
View Source
const (
	IPv4len = net.IPv4len
	IPv6len = net.IPv6len
)

Variables

View Source
var (
	// LocalHostIP is a constant value for localhost IP in IPv4.
	LocalHostIP = IPAddress([]byte{127, 0, 0, 1})

	// AnyIP is a constant value for any IP in IPv4.
	AnyIP = IPAddress([]byte{0, 0, 0, 0})

	// LocalHostDomain is a constant value for localhost domain.
	LocalHostDomain = DomainAddress("localhost")

	// LocalHostIPv6 is a constant value for localhost IP in IPv6.
	LocalHostIPv6 = IPAddress([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1})

	// AnyIPv6 is a constant value for any IP in IPv6.
	AnyIPv6 = IPAddress([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})

	AliyunDns4 = IPAddress([]byte{223, 5, 5, 5})

	CfDns4 = IPAddress([]byte{1, 1, 1, 1})

	GoogleDns4 = IPAddress([]byte{8, 8, 8, 8})
)
View Source
var (
	CIDRMask        = net.CIDRMask
	Dial            = net.Dial
	DialTCP         = net.DialTCP
	DialUDP         = net.DialUDP
	DialUnix        = net.DialUnix
	FileConn        = net.FileConn
	Listen          = net.Listen
	ListenTCP       = net.ListenTCP
	ListenUDP       = net.ListenUDP
	ListenUnix      = net.ListenUnix
	LookupIP        = net.LookupIP
	ParseCIDR       = net.ParseCIDR
	ParseIP         = net.ParseIP
	ResolveUDPAddr  = net.ResolveUDPAddr
	ResolveUnixAddr = net.ResolveUnixAddr
	SplitHostPort   = net.SplitHostPort
	ResolveTCPAddr  = net.ResolveTCPAddr
)
View Source
var AnyUdpDest = Destination{
	Address: AnyIP,
	Network: Network_UDP,
}
View Source
var (
	PrivateAddress = netip.PrefixFrom(netip.AddrFrom4([4]byte{172, 16, 0, 0}), 12)
)

Functions

func AddressestoNetIPs

func AddressestoNetIPs(addrs []Address) ([]net.IP, error)

func Checksum

func Checksum(sum uint32, b []byte) (answer [2]byte)

checksum for Internet Protocol family headers

func Contains added in v1.1.2

func Contains(p *PortRange, port Port) bool

Contains returns true if the given port is within the range of a PortRange.

func FetchHTTPContent

func FetchHTTPContent(target string) ([]byte, error)

FetchHTTPContent dials http(s) for remote content

func GetInnerMostConn

func GetInnerMostConn(conn net.Conn) net.Conn

func IPToNetipAddr

func IPToNetipAddr(ip net.IP) netip.Addr

func IntToIP

func IntToIP(ip int) net.IP

func IpToInt

func IpToInt(ip net.IP) int

func IsDirectedBoradcast

func IsDirectedBoradcast(ip net.IP) bool

func IsDomainTooLong

func IsDomainTooLong(domain string) bool

func NetIPFromGvisorTcpipAddress

func NetIPFromGvisorTcpipAddress(address tcpip.Address) net.IP

func NewConnection

func NewConnection(opts ...ConnectionOption) net.Conn

func PickUDPPort

func PickUDPPort() uint16

pickPort returns an unused UDP port of the system.

func PrefixStringFromIP

func PrefixStringFromIP(ip net.IP) string

func RandomIP

func RandomIP(startIP, endIP net.IP) net.IP

func StandardIp

func StandardIp(ip net.IP) net.IP

func Sum

func Sum(b []byte) uint32

func SystemString added in v1.1.2

func SystemString(n Network) string

func UnmarshalJSON added in v1.1.2

func UnmarshalJSON(n *Network, b []byte) error

Types

type Addr

type Addr = net.Addr

type AddrError

type AddrError = net.AddrError

type Address

type Address interface {
	IP() net.IP     // IP of this Address
	Domain() string // Domain of this Address
	Family() AddressFamily
	// IPv6 address is wrapped in "[]"
	String() string // String representation of this Address
}

Address represents a network address to be communicated with. It may be an IP address or domain address, not both. This interface doesn't resolve IP address for a given domain.

func AddressFromNetIpAddr

func AddressFromNetIpAddr(ip netip.Addr) Address

func DomainAddress

func DomainAddress(domain string) Address

DomainAddress creates an Address with given domain.

func IPAddress

func IPAddress(ip []byte) Address

IPAddress creates an Address with given IP.

func ParseAddress

func ParseAddress(addr string) Address

ParseAddress parses a string into an Address. The return value will be an IPAddress when the string is in the form of IPv4 or IPv6 address, or a DomainAddress otherwise.

func ParseIPFromString

func ParseIPFromString(addr string) Address

type AddressFamily

type AddressFamily byte

AddressFamily is the type of address.

func (AddressFamily) IsDomain

func (af AddressFamily) IsDomain() bool

IsDomain returns true if current AddressFamily is Domain.

func (AddressFamily) IsIP

func (af AddressFamily) IsIP() bool

IsIP returns true if current AddressFamily is IPv6 or IPv4.

func (AddressFamily) IsIPv4

func (af AddressFamily) IsIPv4() bool

IsIPv4 returns true if current AddressFamily is IPv4.

func (AddressFamily) IsIPv6

func (af AddressFamily) IsIPv6() bool

IsIPv6 returns true if current AddressFamily is IPv6.

type AddressPort

type AddressPort struct {
	Address Address
	Port    Port
}

func (AddressPort) String

func (ap AddressPort) String() string

type BytesConn

type BytesConn struct {
	net.Conn
	// contains filtered or unexported fields
}

read will read from bytes first

func NewBytesConn

func NewBytesConn(conn net.Conn, b []byte) *BytesConn

func (*BytesConn) Read

func (c *BytesConn) Read(b []byte) (int, error)

type Conn

type Conn = net.Conn

type ConnWithClose

type ConnWithClose struct {
	net.Conn
	// contains filtered or unexported fields
}

func NewConnWithClose

func NewConnWithClose(conn net.Conn, cb func()) *ConnWithClose

func (*ConnWithClose) Close

func (c *ConnWithClose) Close() error

type ConnectionOption

type ConnectionOption func(*connection)

func ConnectionInput

func ConnectionInput(writer io.Writer) ConnectionOption

func ConnectionInputMulti

func ConnectionInputMulti(writer buf.Writer) ConnectionOption

func ConnectionLocalAddr

func ConnectionLocalAddr(a net.Addr) ConnectionOption

func ConnectionOnClose

func ConnectionOnClose(n io.Closer) ConnectionOption

func ConnectionOutput

func ConnectionOutput(reader io.Reader) ConnectionOption

func ConnectionOutputMulti

func ConnectionOutputMulti(reader buf.Reader) ConnectionOption

func ConnectionOutputMultiUDP

func ConnectionOutputMultiUDP(reader buf.Reader) ConnectionOption

func ConnectionRemoteAddr

func ConnectionRemoteAddr(a net.Addr) ConnectionOption

type Destination

type Destination struct {
	Address Address
	Port    Port
	Network Network
}

Destination represents a network destination including address and protocol (tcp / udp).

func DestinationFromAddr

func DestinationFromAddr(addr net.Addr) Destination

DestinationFromAddr generates a Destination from a net address.

func ParseDestination

func ParseDestination(dest string) (Destination, error)

ParseDestination converts a destination from its string presentation.

func TCPDestination

func TCPDestination(address Address, port Port) Destination

TCPDestination creates a TCP destination with given address

func UDPDestination

func UDPDestination(address Address, port Port) Destination

UDPDestination creates a UDP destination with given address

func UnixDestination

func UnixDestination(address Address) Destination

UnixDestination creates a Unix destination with given address

func (*Destination) Addr

func (d *Destination) Addr() net.Addr

func (Destination) IsValid

func (d Destination) IsValid() bool

IsValid returns true if this Destination is valid, i.e. it is not unknown

func (Destination) NetAddr

func (d Destination) NetAddr() string

NetAddr returns the network address in this Destination in string form.

func (Destination) String

func (d Destination) String() string

String returns the strings form of this Destination.

func (Destination) ToAddressPort

func (t Destination) ToAddressPort() AddressPort

func (Destination) ToUdpNetwork

func (t Destination) ToUdpNetwork() string

type Dialer

type Dialer = net.Dialer

type Error

type Error = net.Error

type HasNetConn

type HasNetConn interface {
	NetConn() net.Conn
}

type IP

type IP = net.IP

type IPMask

type IPMask = net.IPMask

type IPNet

type IPNet = net.IPNet

type ListenConfig

type ListenConfig = net.ListenConfig

type Listener

type Listener = net.Listener

type MbConn

type MbConn struct {
	net.Conn
	Mb buf.MultiBuffer
}

read will read from Mb first

func NewMbConn

func NewMbConn(conn net.Conn, cache buf.MultiBuffer) *MbConn

func (*MbConn) CloseWrite

func (c *MbConn) CloseWrite() error

func (*MbConn) NetConn

func (c *MbConn) NetConn() net.Conn

func (*MbConn) OkayToUnwrapReader

func (c *MbConn) OkayToUnwrapReader() int

func (*MbConn) OkayToUnwrapWriter

func (c *MbConn) OkayToUnwrapWriter() int

func (*MbConn) Read

func (c *MbConn) Read(b []byte) (n int, err error)

func (*MbConn) UnwrapReader

func (c *MbConn) UnwrapReader() any

func (*MbConn) UnwrapWriter

func (c *MbConn) UnwrapWriter() any

type MemoryConn

type MemoryConn struct {
	net.Conn
	// contains filtered or unexported fields
}

all data read from Conn will be saved to history until stop

func NewMemoryRConn

func NewMemoryRConn(conn net.Conn) *MemoryConn

func (*MemoryConn) History

func (c *MemoryConn) History() buf.MultiBuffer

func (*MemoryConn) OkayToUnwrapReader

func (c *MemoryConn) OkayToUnwrapReader() int

func (*MemoryConn) OkayToUnwrapWriter

func (c *MemoryConn) OkayToUnwrapWriter() int

func (*MemoryConn) Read

func (c *MemoryConn) Read(p []byte) (int, error)

func (*MemoryConn) StopMemorize

func (c *MemoryConn) StopMemorize()

func (*MemoryConn) UnwrapReader

func (c *MemoryConn) UnwrapReader() any

func (*MemoryConn) UnwrapWriter

func (c *MemoryConn) UnwrapWriter() any

type NetConnToPacketConn

type NetConnToPacketConn struct {
	net.Conn
}

func (*NetConnToPacketConn) ReadFrom

func (c *NetConnToPacketConn) ReadFrom(p []byte) (n int, addr Addr, err error)

func (*NetConnToPacketConn) SetReadBuffer added in v1.0.2

func (c *NetConnToPacketConn) SetReadBuffer(bytes int) error

suppress quic-go log

func (*NetConnToPacketConn) WriteTo

func (c *NetConnToPacketConn) WriteTo(p []byte, addr Addr) (n int, err error)

type NetDialer

type NetDialer struct {
	net.Dialer
}

func (*NetDialer) Dial

func (d *NetDialer) Dial(ctx context.Context, dst Destination) (net.Conn, error)

type NetPacketListener

type NetPacketListener struct {
	net.ListenConfig
}

func (*NetPacketListener) ListenPacket

func (l *NetPacketListener) ListenPacket(ctx context.Context, network, address string) (net.PacketConn, error)

type Network

type Network = pbnet.Network
const (
	Network_Unknown Network = 0
	Network_TCP     Network = 2
	Network_UDP     Network = 3
	Network_UNIX    Network = 4
)

func NetworkFromAddr

func NetworkFromAddr(addr net.Addr) Network

type PacketConn

type PacketConn = net.PacketConn

type Port

type Port uint16

Port represents a network port in TCP and UDP protocol.

func FromPort added in v1.1.2

func FromPort(p *PortRange) Port

FromPort returns the beginning port of this PortRange.

func PickTCPPort

func PickTCPPort() Port

PickTCPPort returns an unused TCP port of the system.

func PortFromBytes

func PortFromBytes(port []byte) Port

PortFromBytes converts a byte array to a Port, assuming bytes are in big endian order. @unsafe Caller must ensure that the byte array has at least 2 elements.

func PortFromInt

func PortFromInt(val uint32) (Port, error)

PortFromInt converts an integer to a Port. @error when the integer is not positive or larger then 65535

func PortFromString

func PortFromString(s string) (Port, error)

PortFromString converts a string to a Port. @error when the string is not an integer or the integral value is a not a valid Port.

func ToPort added in v1.1.2

func ToPort(p *PortRange) Port

ToPort returns the end port of this PortRange.

func (Port) String

func (p Port) String() string

String returns the string presentation of a Port.

func (Port) Value

func (p Port) Value() uint16

Value return the corresponding uint16 value of a Port.

type PortRange

type PortRange = pbnet.PortRange

func SinglePortRange

func SinglePortRange(p Port) *PortRange

SinglePortRange returns a PortRange contains a single port.

type Resolver

type Resolver = net.Resolver

type StatsConn

type StatsConn struct {
	net.Conn
	ReadCounter  *atomic.Uint64
	WriteCounter *atomic.Uint64
}

func NewStatsConn

func NewStatsConn(conn net.Conn, readCounter, writeCounter *atomic.Uint64) *StatsConn

func (*StatsConn) HasNetConn

func (c *StatsConn) HasNetConn() net.Conn

func (*StatsConn) Read

func (c *StatsConn) Read(b []byte) (int, error)

func (*StatsConn) Write

func (c *StatsConn) Write(b []byte) (int, error)

type StatsListener

type StatsListener struct {
	net.Listener
	// contains filtered or unexported fields
}

func NewStatsListener

func NewStatsListener(listener net.Listener, readCounter, writeCounter *atomic.Uint64) *StatsListener

func (*StatsListener) Accept

func (l *StatsListener) Accept() (net.Conn, error)

type StatsPacketConn

type StatsPacketConn struct {
	net.PacketConn
	ReadCounter  *atomic.Uint64
	WriteCounter *atomic.Uint64
}

func NewStatsPacketConn

func NewStatsPacketConn(pc net.PacketConn, readCounter, writeCounter *atomic.Uint64) *StatsPacketConn

func (*StatsPacketConn) ReadFrom

func (c *StatsPacketConn) ReadFrom(p []byte) (n int, addr Addr, err error)

func (*StatsPacketConn) WriteTo

func (c *StatsPacketConn) WriteTo(p []byte, addr Addr) (n int, err error)

type TCPAddr

type TCPAddr = net.TCPAddr

type TCPConn

type TCPConn = net.TCPConn

type TCPListener

type TCPListener = net.TCPListener

type UDPAddr

type UDPAddr = net.UDPAddr

type UDPConn

type UDPConn = net.UDPConn

type UnixAddr

type UnixAddr = net.UnixAddr

type UnixConn

type UnixConn = net.UnixConn

type UnixListener

type UnixListener = net.UnixListener

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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