class Miniss::Sockets

Overview

Sockets object has properties containing arrays of Sockets from the parsed sockets files of a base folder (default: /proc/net).

Example:

sockets = Miniss::Sockets.new                   # parse `/proc/net`
sockets = Miniss::Sockets.new("/proc/1234/net") # parse the net folder of a given process
sockets.tcpv4.each do |so|
  puts "#{so.laddr} <-> #{so.raddr}"
end

Defined in:

miniss/addr.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(base : String = "/proc/net") #

Initialize Sockets class.

By default sockets files are parsed from /proc/net but another base folder can be set, e.g. /proc/1234/net to list the sockets of a given process ID.

NOTE Missing or unreadable sockets files (not every process exposes all of tcp, tcp6, udp, udp6) are silently skipped.


[View source]

Instance Method Detail

def all #

Returns all sockets


[View source]
def base : String #

Base folder containing the sockets files (tcp, tcp6, udp, udp6).


[View source]
def parse_tcpv4 : Array(Socket) #

Parse all IPv4 TCP sockets from <base>/tcp (e.g. /proc/net/tcp).


[View source]
def parse_tcpv6 : Array(Socket) #

Parse all IPv6 TCP sockets from <base>/tcp6 (e.g. /proc/net/tcp6).


[View source]
def parse_udpv4 : Array(Socket) #

Parse all IPv4 UDP sockets from <base>/udp (e.g. /proc/net/udp).


[View source]
def parse_udpv6 : Array(Socket) #

Parse all IPv6 UDP sockets from <base>/udp6 (e.g. /proc/net/udp6).


[View source]
def tcpv4 : Array(Socket) #

Returns all IPv4 TCP sockets


[View source]
def tcpv6 : Array(Socket) #

Returns all IPv6 TCP sockets


[View source]
def udpv4 : Array(Socket) #

Returns all IPv4 UDP sockets


[View source]
def udpv6 : Array(Socket) #

Returns all IPv6 UDP sockets


[View source]