Documentation ¶
Overview ¶
Package procspy lists TCP connections, and optionally tries to find the owning processes. Works on Linux (via /proc) and Darwin (via `lsof -i` and `netstat`). You'll need root to use Processes().
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReadNetnsFromPID ¶
ReadNetnsFromPID gets the netns inode of the specified pid
Types ¶
type ConnIter ¶
type ConnIter interface {
Next() *Connection
}
ConnIter is returned by Connections().
type Connection ¶
type Connection struct { Transport string LocalAddress net.IP LocalPort uint16 RemoteAddress net.IP RemotePort uint16 Inode uint64 Proc Proc }
Connection is a (TCP) connection. The Proc struct might not be filled in.
type ConnectionScanner ¶
type ConnectionScanner interface { // Connections returns all established (TCP) connections. Connections() (ConnIter, error) // Stops the scanning Stop() }
ConnectionScanner scans the system for established (TCP) connections
func NewConnectionScanner ¶
func NewConnectionScanner(walker process.Walker, processes bool) ConnectionScanner
NewConnectionScanner creates a new Linux ConnectionScanner
func NewSyncConnectionScanner ¶
func NewSyncConnectionScanner(walker process.Walker, processes bool) ConnectionScanner
NewSyncConnectionScanner creates a new synchronous Linux ConnectionScanner
type FixedScanner ¶
type FixedScanner []Connection
FixedScanner implements ConnectionScanner and uses constant Connection and ConnectionProcs.
func (FixedScanner) Connections ¶
func (s FixedScanner) Connections() (ConnIter, error)
Connections implements ConnectionsScanner.Connections
func (FixedScanner) Stop ¶
func (s FixedScanner) Stop()
Stop implements ConnectionsScanner.Stop (dummy since there is no background work)
type ProcNet ¶
type ProcNet struct {
// contains filtered or unexported fields
}
ProcNet is an iterator to parse /proc/net/tcp{,6} files.
func (*ProcNet) Next ¶
func (p *ProcNet) Next() *Connection
Next returns the next connection. All buffers are re-used, so if you want to keep the IPs you have to copy them.