netstat

package
v0.3.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2023 License: MPL-2.0 Imports: 14 Imported by: 2

Documentation

Overview

Package netstat provides primitives for getting socket information on a Linux based operating system.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotEnoughFields = errors.New("gonetstat: not enough fields in the line")
)

Errors returned by gonetstat

Functions

func NoopFilter

func NoopFilter(*SockTabEntry) bool

NoopFilter - a test function returning true for all elements

Types

type AcceptFn

type AcceptFn func(*SockTabEntry) bool

AcceptFn is used to filter socket entries. The value returned indicates whether the element is to be appended to the socket list.

type Forwarder

type Forwarder interface {
	Forward(port string) error
	StopForward(port string) error
}

type Process

type Process struct {
	Pid  int
	Name string
}

Process holds the PID and process name to which each socket belongs

func (*Process) String

func (p *Process) String() string

type SkState

type SkState uint8

SkState type represents socket connection state

const (
	Established SkState = 0x01
	SynSent     SkState = 0x02
	SynRecv     SkState = 0x03
	FinWait1    SkState = 0x04
	FinWait2    SkState = 0x05
	TimeWait    SkState = 0x06
	Close       SkState = 0x07
	CloseWait   SkState = 0x08
	LastAck     SkState = 0x09
	Listen      SkState = 0x0a
	Closing     SkState = 0x0b
)

Socket states

func (SkState) String

func (s SkState) String() string

type SockAddr

type SockAddr struct {
	IP   net.IP
	Port uint16
}

SockAddr represents an ip:port pair

func (*SockAddr) String

func (s *SockAddr) String() string

type SockTabEntry

type SockTabEntry struct {
	LocalAddr  *SockAddr
	RemoteAddr *SockAddr
	State      SkState
	UID        uint32
	Process    *Process
	// contains filtered or unexported fields
}

SockTabEntry type represents each line of the /proc/net/[tcp|udp]

func TCP6Socks

func TCP6Socks(accept AcceptFn) ([]SockTabEntry, error)

TCP6Socks returns a slice of active TCP IPv4 sockets containing only those elements that satisfy the accept function

func TCPSocks

func TCPSocks(accept AcceptFn) ([]SockTabEntry, error)

TCPSocks returns a slice of active TCP sockets containing only those elements that satisfy the accept function

func UDP6Socks

func UDP6Socks(accept AcceptFn) ([]SockTabEntry, error)

UDP6Socks returns a slice of active UDP IPv6 sockets containing only those elements that satisfy the accept function

func UDPSocks

func UDPSocks(accept AcceptFn) ([]SockTabEntry, error)

UDPSocks returns a slice of active UDP sockets containing only those elements that satisfy the accept function

type Watcher

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

func NewWatcher

func NewWatcher(forwarder Forwarder, log log.Logger) *Watcher

func (*Watcher) Run

func (w *Watcher) Run(ctx context.Context) error

Jump to

Keyboard shortcuts

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