Smart Ulist ("Ulist") is primarily intended to print out in pretty fashion a list of logged-in users on Novell NetWare file server. It prints out among others full-names of logged-in users, names of computers (if supplied translation file). Whole list can be sorted according specified rules.
This program can be used instead of USERLIST.EXE for Novell NetWare 3.11+
It requires PC-compatible computer running Novell NetWare 3.11+ Workstation shell.
Smart Ulist is provided as FreeWare, and thus you may freely distribute it providing 1) the distribution is *not* for profit, and 2) all files are included and unchanged (including this doc file). Michal Koucky takes no responsibility for the results of using or misusing this software. Please see the end of this file for the full text of the disclaimer under which this software is provided.
2.0 Installation
To install Smart Ulist, simply transfer the ulist19.zip file to
your system, and unpack it using pkunzip or a similar zip
decompression tool into desired directory.
You will find several files:
Contact your network administrator to obtain this translation file appropriate to your site or if there is no translation file for your site you can create one. If Ulist finds no translation file then it simply uses ethernet card addresses as computer names.
Place translation file named `BOOTPTAB' in Ulist directory or use `/p' option.
General format of command line to run Ulist is:
3.0 Usage
To run Ulist, just type `ulist' at command prompt.
where <mask> is a string without spaces which doesn't start with
`/' and `-' characters and <options> is a list of one
or more command line options specified in section 3.2
<mask> and/or <options> may be omitted.
<mask> cannot start with `/' or `-' characters and cannot contain
spaces. String matching is done case-insensitive.
<mask> is usable when we are looking for particular user.
An example:
Ulist prints out only connections whose computer name contains
substring <mask>.
<mask> cannot contain spaces.
Ulist will not pause after each screen of information.
Ulist normally waits on a keystroke after each screen.
Pressing character `C' has special meaning in this situation -
it's the same as specifying command line option `/C' and
from this point Ulist will not wait on any keystroke.
Use this option, if you are redirecting output.
Ulist prints out debug information, statistic and lists all
connections.
Debug information are: name of translation file actually used and
number of Ethernet card names defined in this file.
All connections are listed including logged-out connections
(you can see attached computers with nobody logged-in)
Ulist prints out statistic.
This statistic includes number of logged-in users, number of
attached computers and maximum number of connections supported
by this server. (Attached computer is a computer which is
attached to server whether or not somebody is logged-in
from it.)
Ulist prints out Logical Station (Connection) Number for
every connection.
This is usable when you need send a message directly to
a particular station if user is logged-in from more than
one computer.
<flags> is a list of sorting flags which specifies sorting
rules for list of connections.
All flags are one-character and former flags in <flags> are
more important:
Default list of sorting flags is '-ocnr'
You can specify full name with path of translation file.
If this option is omitted Ulist search for file named `BOOTPTAB'
at first in directory with ULIST.EXE and then in current directory.
This option tells Ulist that translation file is "old-style".
This option tells Ulist that translation file conforms to "DHCP format".
This file must be accessible for Ulist while Ulist is running.
If translation file is not present then ethernet card addresses
are used as computer names.
To specify name and location of translation file use `/p' option.
Ulist supports three formats of translation file - format called
"old-style format", and formats commonly used on UNIX machines for
configuration database files called "bootptab format" and "DHCP format".
The bootptab format is default.
If you want to use this kind of translation file you must use `/o'
option.
This is a textual file. Blank lines and lines beginning with other
character than dot `.' are ignored by Ulist. Host entries are separated
from one another by newlines; each entry must be on a single line.
String following the dot (usually IP number) is ignored by Ulist and
a hexadecimal representation of ethernet card address must follow this
string. Computer name must then follow ethernet card address. Rest of
the line is ignored by Ulist.
"BNF" syntax for old-style format:
You can ask network administrator to make an automatic updating of
this file by every change of master copy `bootptab' file.
This format is by default supposed.
This is a textual file in which two-character case-sensitive tag
symbols are used to represent host parameters. These parameter
declarations are separated by colons `:', with a general format of:
The ha tag takes as value a hardware address which must be specified
in hexadecimal; optional periods and/or a leading '0x' may be included
for readability.
The ha tag may appear in any order, with the following exception: the
hostname must be the very first field in an entry.
The hostname is ASCII string which may be optionally surrounded by double
quotes `"'.
Blank lines and lines beginning with `#' are ignored in the configuration
file. Host entries are separated from one another by newlines; a
single host entry may be extended over multiple lines if the lines end
with a backslash (\). It is also acceptable for lines to be longer than
80 characters but shorter than 250 characters.
An example
This definition is based on manual page for bootptab written
by Carnegie Mellon University:
You can ask network administrator to make an automatic updating of
this file by every change of its master copy.
If you want to use this kind of translation file you must use `/h'
option.
This is a structured textual file based on grouping information
in blocks like it is done in high level programming languages.
Parsing a whole structure of such file is complex task and therefore
Ulist uses simplified rules by parsing those configuration files.
Ulist scans for keyword `host' after which it supposes to be
an hostname separated by white spaces on both sides. After hostname
it scans for keyword `hardware' and second token followed it takes as
an ethernet address. Text on a line after character `#' is ignored.
White space is defined as a combination of spaces, new line characters,
tabulators, brackets and separators.
Lines must be shorter than 250 characters.
An example /etc/dhcpd.conf file follows:
The number of ethernet card names which Ulist can handle is 1450.
If there is more than 1450 ethernet cards addresses in translation
file Ulist cannot work. You can contact author to fix this limit.
The version of Smart Ulist (Version 1.9), Copyright (c) 1997 by Michal
Koucky, provided herewith, is hereby distributed as so-called "freeware".
By that term, Michal Koucky, intends to distribute this
software product without the reservation of any proprietary or other
economic rights. Each user may, in turn, distribute this software
product to other users without obtaining the permission of Michal
Koucky; provided only that (i) no user may distribute
the software product, either by itself or in conduction with any
other product or device, in exchange, either directly or indirectly,
for profit, the intention of profit or any other economic
considerations, without the express written permission of Michal
Koucky, which said permission may be conditioned, withheld or
delayed at its sole discretion, (ii) each copy so distributed by
a users includes this "ULIST.DOC" file and (iii) the copy so
distributed has not been altered, modified, impaired or damaged.
Any user who distributes this software product in violation of these
specifically reserved conditions shall be liable for any and all
claims, losses, damages and liabilities resulting therefrom.
3.1 Mask
<mask> on command line instructs Ulist to print out logged-in users
only whose full-name and/or login-name contains this substring.
H:\>ULIST ji
Server BARBORA
User name Station Login-name Date
---------------------- --------------- -------------- ---------------
Lucie Jizbova, KSVI ksvi-lucka JIZBOVA 12-NOV-96 07:34
Jiri Holan s5-62DCF JHOL4148 12-NOV-96 09:28
3.2 Command Line Options
You can specify a few command line options:
Each flag can be preceded by `+' or `-' sign, which specifies
sorting from `A' to `Z' (default) or from `Z' to `A'.
4.0 Translation File
Translation file is a textual database file used for translating
ethernet card names to computer names.
4.1 Old-style Format
This format is rarely used to store network information.
<osf_file> ::= *<osf_line> <new-line character>
<osf_line> ::= . <ws> <string> <ws> <card_addr> <ws> <name> *(<ws><string>)
<osf_line> ::= . <ws> <string> <ws> - *(<ws><string>)
<osf_line> ::= <ws> <not_a_dot> *(<ws><string>)
<name> ::= <string>
<card_addr> ::= <hex_number>
<ws> ::= *( space | tabelator )
<string> ::= *(any character except space, tabelator and new-line characters)
<not_a_dot> ::= any character except space, tabelator, new-line and dot characters
<hex_number>::= *( 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | f | A | B | C | D | E | F )
An example MS.CFG
file follows:
#***********************************************************
# Bootptab/Hosts/Networks/Netmasks/Domain Configuration File
#***********************************************************
#
H 127.0.0.1 local.host localhost loopback lb me loghost
N loopback 127 loop
B default:ds=193.84.56.1 194.50.16.77:tc=root:
S sal 194.50.16 0 255.255.255.0 222
# 0- 33 rezervovano
. 33 00000C03F191 mffuk-gw igs # CISCO router IGS do OVC
. 77 08002B2E7612 sns sisaldec # DEC 5000 SISAL, zalozni server
. 93 800010030700 lvt700 charles
. 94 0800092E69BE laser
. 126 080555500000 scanner
. 130 0000C094C165 nms
. 131 0000C004AD93 libor
. 132 0000E80E5567 servis # servisni notebook
. 200 00000CFFE0AA tserv # CISCO terminal server
. 201 - slip1
. 202 - slip2
. 203 - slip3
. 50 08002018D5E2 kam kucera # Sun Classic na KAM
. 51 0800202141D1 altec #
. 52 - jupiter # druhy sun
. 53 - kam-pc-1 # PC
. 54 0000C09D7D4D kam-pc-2 # PC na sekretariate
. 55 080007808ECA lcii # MAC na KAM
. 56 0800070CE87C kam-mac-2 # MAC na KAM
4.2 bootptab Format
This format corresponds to commonly used format of configuration
database file on UNIX machines. This kind of file is used by bootp
and some DHCP daemons and usually is called `bootptab'. This file
can be directly used by Ulist (of course, if it is accessible via
standard DOS file services.)
hostname:tg=value... :tg=value... :tg=value....
where hostname is the desired computer name and tg is a two-character
tag symbol. Most tags must be followed by an equals-sign and
a value as above. Some may also appear in a boolean form with no value
(i.e. :tg:). The list of currently defined tags is long enough (see
original manual pages) but Ulist recognizes ha tag only./etc/bootptab
file follows:
# /etc/bootptab generated Mon Feb 12 11:59:10 MET 1996 by ./boothosts
root:\
:hd=/usr/boot:bf=null:\
:hn:vm=auto:to=3600:
default:\
:ds=194.50.16.71 194.50.16.77:\
:tc=root:
sal:tc=default:sm=255.255.255.0:gw=194.50.16.222:
mffuk-gw:ht=1:ha=00000C03F191:ip=194.50.16.33:tc=sal:
ns:ht=1:ha=08002B2C20CF:ip=194.50.16.71:tc=sal:
alfinka:ht=1:ha=08002BE75423:ip=194.50.16.74:tc=sal:
sns:ht=1:ha=08002B2E7612:ip=194.50.16.77:tc=sal:
spider:ht=1:ha=0800202179C2:ip=194.50.16.80:tc=sal:
laser:ht=1:ha=0800092E69BE:ip=194.50.16.94:tc=sal:\
:lg=194.50.16.71:T144="laser.conf":
seminar:ht=1:ha=800010033333:ip=194.50.16.95:tc=sal:
webik:ht=1:ha=0020AF67AFD4:ip=194.50.16.96:tc=sal:
BOOTPTAB(5), Carnegie Mellon University, October 31, 1991
4.3 DHCP Format
This format corresponds to format of configuration file used
by some DHCP daemons for network description. Such file can
be directly used by Ulist (of course, if it is accessible via
standard DOS file services.)
# /etc/dhcpd.conf generated Fri Jun 20 15:14:01 MET DST 1997 by ./boothosts
option domain-name "ms.mff.cuni.cz";
option time-servers 195.113.19.71;
# Segment elan
subnet 194.50.18.0 netmask 255.255.255.0 {
option routers 194.50.18.222;
option domain-name-servers 194.50.16.71, 194.50.18.34,
194.50.18.179;
}
# Segment backbone
subnet 195.113.16.0 netmask 255.255.252.0 {
option routers 195.113.19.222;
option domain-name-servers 195.113.19.71, 195.113.19.77;
host beta { hardware ethernet 08:00:69:08:5E:8B; fixed-address 195.113.16.70;}
host gama { hardware ethernet 08:00:69:09:83:48; fixed-address 195.113.16.71;}
host delta { hardware ethernet 08:00:69:08:B6:47; fixed-address 195.113.16.72;}
host epsilon { hardware ethernet 08:00:69:08:6E:00; fixed-address 195.113.16.73;}
host ulab-xt1 { hardware ethernet 08:00:09:E4:26:62; fixed-address 195.113.16.82;}
host ulab-xt2 { hardware ethernet 08:00:09:E4:26:80; fixed-address 195.113.16.83;}
host ulab-19 { hardware ethernet 08:00:20:23:76:5D; fixed-address 195.113.16.89;}
host s5-11T { hardware ethernet 00:20:AF:42:F5:52; fixed-address 195.113.16.130;}
host s5-12T { hardware ethernet 00:20:AF:42:F5:40; fixed-address 195.113.16.131;}
host s5-13T
{ hardware ethernet 00:20:AF:35:46:42; fixed-address 195.113.16.132;}
host athos { hardware ethernet 08:00:20:77:D9:E7; fixed-address 195.113.17.183;}
host kam-pc-2 { hardware ethernet 00:00:C0:9D:7D:4D; fixed-address 195.113.18.114;}
host lcii { hardware ethernet 08:00:07:80:8E:CA; fixed-address 195.113.18.115;}
host kam-mac-2 { hardware ethernet 08:00:07:0C:E8:7C; fixed-address 195.113.18.116;}
host kam-pc-3 { hardware ethernet 00:60:8C:75:E1:5A; fixed-address 195.113.18.117;}
host kumbal { hardware ethernet 00:20:E4:80:0D:34; fixed-address 195.113.18.118;}
}
5.0 Specification
Ulist supports up-to 255 server connections. If your server
supports more than 255 simultaneous connections list of users
may be uncompleted.
6.0 Obtaining a Copy of Smart Ulist & Contacting Author
This program can be obtained via HTTP from URL:
http://www.ms.mff.cuni.cz/~mkou2157/ulist/ulist19.zip
Author can be contacted via e-mail at address:
mkoucky@acm.org
or Michal.Koucky@st.mff.cuni.cz
or by snail-mail:
Michal Koucky
Novodvorska 1118
142 00 Praha 4
The Czech Republic
1.0 - 1.4 earlier versions of Ulist
1.5 added support for bootptab format of translation file
1.5b arrow keys problem for continue fixed
1.5c configurable sorting
1.5d added support for statistic
1.5f support for up to 254 connections
1.6 added user name mask selection
1.6c support for up to 255 connections
support for up to 1450 computer names
bug in parsing of translation file fixed
1.6d prints out logical station number
1.7 public release version
fully conform to bootptab specification
1.7a first non-alphanum character in host name ignored
1.8 added support for DHCP format
1.8a fixed problem with long hostnames and buggy adresses in DHCP
1.8b added machine name mask selection
1.9 fixed problem with redirecting output
7.1 Bugs
None known yet.
Please report all bugs to the author
8.0 Disclaimer & Copyright
THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. IN NO EVENT SHALL MICHAL KOUCKY BE LIABLE FOR ANY DAMAGES
WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS
OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICHAL KOUCKY HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.