ips

package
v0.0.0-...-6519026 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	IPPortLen = net.IPv6len + wrappers.ShortLen
)

Variables

This section is empty.

Functions

func Lookup

func Lookup(hostname string) (net.IP, 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

Types

type ClaimedIPPort

type ClaimedIPPort struct {
	// The peer's certificate.
	Cert *staking.Certificate
	// The peer's claimed IP and port.
	IPPort IPPort
	// 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 IPPort,
	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