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 ¶ added in v1.4.0
ReadNetnsFromPID gets the netns inode of the specified pid
func ReadTCPFiles ¶ added in v1.4.0
ReadTCPFiles reads the proc files tcp and tcp6 for a pid
func SetProcRoot ¶
func SetProcRoot(root string)
SetProcRoot sets the location of the proc filesystem.
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 ¶ added in v0.13.0
type ConnectionScanner interface { // Connections returns all established (TCP) connections. If processes is // false we'll just list all TCP connections, and there is no need to be root. // If processes is true it'll additionally try to lookup the process owning the // connection, filling in the Proc field. You will need to run this as root to // find all processes. Connections(processes bool) (ConnIter, error) // Stops the scanning Stop() }
ConnectionScanner scans the system for established (TCP) connections
func NewConnectionScanner ¶ added in v0.13.0
func NewConnectionScanner(walker process.Walker) ConnectionScanner
NewConnectionScanner creates a new Linux ConnectionScanner
func NewSyncConnectionScanner ¶ added in v1.3.0
func NewSyncConnectionScanner(walker process.Walker) ConnectionScanner
NewSyncConnectionScanner creates a new synchronous Linux ConnectionScanner
type FixedScanner ¶ added in v0.13.0
type FixedScanner []Connection
FixedScanner implements ConnectionScanner and uses constant Connection and ConnectionProcs.
func (FixedScanner) Connections ¶ added in v0.13.0
func (s FixedScanner) Connections(_ bool) (ConnIter, error)
Connections implements ConnectionsScanner.Connections
func (FixedScanner) Stop ¶ added in v0.13.0
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.