[comment {-*- tcl -*- doctools manpage}] [vset PACKAGE_VERSION 0.5.2] [manpage_begin nettool n [vset PACKAGE_VERSION]] [keywords {nettool}] [keywords {odie}] [copyright {2015-2018 Sean Woods }] [moddesc {nettool}] [titledesc {Tools for networked applications}] [category System] [require Tcl 8.5] [require nettool [opt [vset PACKAGE_VERSION]]] [require twapi 3.1] [require ip 0.1] [require platform 0.1] [description] [para] The [package nettool] package consists of a Pure-tcl set of tools to perform common network functions that would normally require different packages or calls to exec, in a standard Tcl interface. At present nettool has reference implementations for the following operating systems: Windows, MacOSX, and Linux (debian). [section Commands] [list_begin definitions] [call [cmd ::cat] [arg filename]] Dump the contents of a file as a result. [call [cmd ::nettool::allocate_port] [arg startingport]] Attempt to allocate [arg startingport], or, if busy, advance the port number sequentially until a free port is found, and claim that port. This command uses a built-in database of known ports to avoid returning a port which is in common use. (For example: http (80)) [call [cmd ::nettool::arp_table]] Dump the contents of this computer's Address Resolution Protocol (ARP) table. The result will be a Tcl formatted list: [arg macid] [arg ipaddrlist] ... [call [cmd ::nettool::broadcast_list]] Returns a list of broadcast addresses (suitable for UDP multicast) that this computer is associated with. [call [cmd ::nettool::claim_port] [arg port] [opt [arg protocol]]] Mark [arg port] as busy, optionally as either [const tcp] (default) or [const udp]. [call [cmd ::nettool::cpuinfo] [arg args]] If no arguments are given, return a key/value list describing the CPU of the present machine. Included in the matrix is info on the number of cores/processors that are available for parallel tasking, installed physical RAM, and processor family. [para] The exact contents are platform specific. [para] For Linux, information is drawn from /proc/cpuinfo and /proc/meminfo. [para] For MacOSX, information is drawn from sysctl [para] For Windows, information is draw from TWAPI. [para] If arguments are given, the result with be a key/value list limited to the fields requested. [para] Canonical fields for all platforms: [list_begin definitions][comment {-- cpuinfofields}] [def cpus] Count of CPUs/cores/execution units [def speed] Clock speed of processor(s) in Mhz [def memory] Installed RAM (in MB) [def vendor] Manufacturer [list_end] [call [cmd ::nettool::find_port] [arg startingport]] Return [arg startingport] if it is available, or the next free port after [arg startingport]. Note: Unlike [cmd ::nettool::allocate_port], this command does not claim the port. [para] This command uses a built-in database of known ports to avoid returning a port which is in common use. (For example: http (80)) [call [cmd ::nettool::hwid_list]] Return a list of hardware specific identifiers from this computer. The source and content will vary by platform. [para] For MacOSX, the motherboard serial number and macids for all network devices is returned. [para] For Windows, the volume serial number of C and macids for all network devices is returned. [para] For Linux, macids for all network devices is returned. [call [cmd ::nettool::ip_list]] Return a list of IP addresses associated with this computer. [call [cmd ::nettool::mac_list]] Return a list of MACIDs for the network cards attached to this machine. The MACID of the primary network card is returned first. [call [cmd ::nettool::network_list]] Return a list of networks associated with this computer. Networks are formated with [cmd ip::nativeToPrefix]. [call [cmd ::nettool::port_busy] [arg port]] Return true if [arg port] is claimed, false otherwise. [call [cmd ::nettool::release_port] [arg port] [opt [arg protocol]]] Mark [arg port] as not busy, optionally as either [const tcp] (default) or [const udp]. [call [cmd ::nettool::status]] Return a key/value list describing the status of the computer. The output is designed to be comparable to the output of [cmd top] for all platforms. [para] Common fields include: [list_begin definitions][comment {-- statusfields}] [def load] Processes per processing unit [def memory_total] Total physical RAM (MB) [def memory_free] Total physical RAM unused (MB) [list_end] [call [cmd ::nettool::user_data_root] [arg appname]] Return a fully qualified path to a folder where [arg appname] should store it's data. The path is not created, only computed, by this command. [list_end] [para] [vset CATEGORY odie] [include ../common-text/feedback.inc] [manpage_end]