ips

package
v1.11.10 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2024 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddrFromSlice

func AddrFromSlice(b []byte) (netip.Addr, bool)

AddrFromSlice returns the IP address from the provided byte slice. If the byte slice represents an IPv4 address in an IPv6 address, the IPv4 address is returned.

func IsPublic

func IsPublic(addr netip.Addr) bool

IsPublic returns true if the provided address is considered to be a public IP.

func Lookup

func Lookup(hostname string) (netip.Addr, error)

Lookup attempts to resolve a hostname to a single IP. If multiple IPs are found, then lookup will attempt to return an IPv4 address, otherwise it will pick any of the IPs.

Note: IPv4 is preferred because `net.Listen` prefers IPv4.

func PackIP

func PackIP(p *wrappers.Packer, ip IPPort)

PackIP packs an ip port pair to the byte array

func ParseAddr

func ParseAddr(s string) (netip.Addr, error)

ParseAddr returns the IP address from the provided string. If the string represents an IPv4 address in an IPv6 address, the IPv4 address is returned.

func ParseAddrPort

func ParseAddrPort(s string) (netip.AddrPort, error)

ParseAddrPort returns the IP:port address from the provided string. If the string represents an IPv4 address in an IPv6 address, the IPv4 address is returned.

Types

type ClaimedIPPort

type ClaimedIPPort struct {
	// The peer's certificate.
	Cert *staking.Certificate
	// The peer's claimed IP and port.
	AddrPort netip.AddrPort
	// The time the peer claimed to own this IP and port.
	Timestamp uint64
	// [Cert]'s signature over the IPPort and timestamp.
	// This is used in the networking library to ensure that this IPPort was
	// actually claimed by the peer in question, and not by a malicious peer
	// trying to get us to dial bogus IPPorts.
	Signature []byte
	// NodeID derived from the peer certificate.
	NodeID ids.NodeID
	// GossipID derived from the nodeID and timestamp.
	GossipID ids.ID
}

A self contained proof that a peer is claiming ownership of an IPPort at a given time.

func NewClaimedIPPort

func NewClaimedIPPort(
	cert *staking.Certificate,
	ipPort netip.AddrPort,
	timestamp uint64,
	signature []byte,
) *ClaimedIPPort

func (*ClaimedIPPort) Size

func (i *ClaimedIPPort) Size() int

Returns the approximate size of the binary representation of this ClaimedIPPort.

type DynamicIPPort

type DynamicIPPort interface {
	// Returns the IP + port pair.
	IPPort() IPPort
	// Changes the IP.
	SetIP(ip net.IP)
}

An IPPort that can change. Safe for use by multiple goroutines.

func NewDynamicIPPort

func NewDynamicIPPort(ip net.IP, port uint16) DynamicIPPort

type IPDesc

type IPDesc IPPort

func (IPDesc) MarshalJSON

func (ipDesc IPDesc) MarshalJSON() ([]byte, error)

func (IPDesc) String

func (ipDesc IPDesc) String() string

func (*IPDesc) UnmarshalJSON

func (ipDesc *IPDesc) UnmarshalJSON(b []byte) error

type IPPort

type IPPort struct {
	IP   net.IP `json:"ip"`
	Port uint16 `json:"port"`
}

An IP and a port.

func ToIPPort

func ToIPPort(str string) (IPPort, error)

func (IPPort) Equal

func (ipPort IPPort) Equal(other IPPort) bool

func (IPPort) IsZero

func (ipPort IPPort) IsZero() bool

IsZero returns if the IP or port is zeroed out

func (IPPort) String

func (ipPort IPPort) String() string

Jump to

Keyboard shortcuts

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