nettool(3tcl) nettool nettool(3tcl)
______________________________________________________________________________
NAME
nettool - Tools for networked applications
SYNOPSIS
package require Tcl 8.5
package require nettool ?0.5.2?
package require twapi 3.1
package require ip 0.1
package require platform 0.1
::cat filename
::nettool::allocate_port startingport
::nettool::arp_table
::nettool::broadcast_list
::nettool::claim_port port ?protocol?
::nettool::cpuinfo args
::nettool::find_port startingport
::nettool::hwid_list
::nettool::ip_list
::nettool::mac_list
::nettool::network_list
::nettool::port_busy port
::nettool::release_port port ?protocol?
::nettool::status
::nettool::user_data_root appname
______________________________________________________________________________
DESCRIPTION
The nettool package consists of a Pure-tcl set of tools to perform com-
mon 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).
COMMANDS
::cat filename
Dump the contents of a file as a result.
::nettool::allocate_port startingport
Attempt to allocate 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))
::nettool::arp_table
Dump the contents of this computer's Address Resolution Protocol
(ARP) table. The result will be a Tcl formatted list: macid
ipaddrlist ...
::nettool::broadcast_list
Returns a list of broadcast addresses (suitable for UDP multi-
cast) that this computer is associated with.
::nettool::claim_port port ?protocol?
Mark port as busy, optionally as either tcp (default) or udp.
::nettool::cpuinfo 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 paral-
lel tasking, installed physical RAM, and processor family.
The exact contents are platform specific.
For Linux, information is drawn from /proc/cpuinfo and
/proc/meminfo.
For MacOSX, information is drawn from sysctl
For Windows, information is draw from TWAPI.
If arguments are given, the result with be a key/value list lim-
ited to the fields requested.
Canonical fields for all platforms:
cpus Count of CPUs/cores/execution units
speed Clock speed of processor(s) in Mhz
memory Installed RAM (in MB)
vendor Manufacturer
::nettool::find_port startingport
Return startingport if it is available, or the next free port
after startingport. Note: Unlike ::nettool::allocate_port, this
command does not claim the 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))
::nettool::hwid_list
Return a list of hardware specific identifiers from this com-
puter. The source and content will vary by platform.
For MacOSX, the motherboard serial number and macids for all
network devices is returned.
For Windows, the volume serial number of C and macids for all
network devices is returned.
For Linux, macids for all network devices is returned.
::nettool::ip_list
Return a list of IP addresses associated with this computer.
::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.
::nettool::network_list
Return a list of networks associated with this computer. Net-
works are formated with ip::nativeToPrefix.
::nettool::port_busy port
Return true if port is claimed, false otherwise.
::nettool::release_port port ?protocol?
Mark port as not busy, optionally as either tcp (default) or
udp.
::nettool::status
Return a key/value list describing the status of the computer.
The output is designed to be comparable to the output of top for
all platforms.
Common fields include:
load Processes per processing unit
memory_total
Total physical RAM (MB)
memory_free
Total physical RAM unused (MB)
::nettool::user_data_root appname
Return a fully qualified path to a folder where appname should
store it's data. The path is not created, only computed, by
this command.
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain
bugs and other problems. Please report such in the category odie of
the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package
and/or documentation.
When proposing code changes, please provide unified diffs, i.e the out-
put of diff -u.
Note further that attachments are strongly preferred over inlined
patches. Attachments can be made by going to the Edit form of the
ticket immediately after its creation, and then using the left-most
button in the secondary navigation bar.
KEYWORDS
nettool, odie
CATEGORY
System
COPYRIGHT
Copyright (c) 2015-2018 Sean Woods <yoda@etoyoc.com>
tcllib 0.5.2 nettool(3tcl)