home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MISC / NETWORK / NETLIS13.ZIP / NETLIST.DOC < prev    next >
Encoding:
Text File  |  1990-06-12  |  40.7 KB  |  1,190 lines

  1.  
  2.     [*]===========================================================[*]
  3.      |                                   |
  4.      |      NETLIST    Concurrent search for NetBIOS network users,  |
  5.      |        1.3             extended network statistics       |
  6.      |     June 1990          & other services           |
  7.      |                                   |
  8.     [*]===========================================================[*]
  9.  
  10.  
  11.              Public domain software
  12.  
  13.  
  14.                by  Adam MIROWSKI
  15.             MIROWSKI@FRECP12.BITNET
  16.             ADAMAINT@FRECP12.BITNET
  17.  
  18.                developed at the
  19.             Ecole Centrale de Paris
  20.                 FRANCE
  21.  
  22.  
  23.  
  24.             =======================
  25.                TABLE of CONTENTS
  26.             =======================
  27.  
  28.  
  29.     INTRODUCTION
  30.     ------------
  31.  
  32.     NETLIST's purpose
  33.     Prerequisites
  34.     New version 1.3 features
  35.     Version 1.2 features
  36.  
  37.  
  38.     USER's GUIDE
  39.     ------------
  40.  
  41.     NETLIST's command line syntax
  42.     Explanation of various fields and entities
  43.     Creating users' database
  44.     NETLIST.DEF, the configuration file
  45.     Examples
  46.     Starting and interrupting NETLIST
  47.     Archive's contents
  48.     Remarks -- Bugs
  49.  
  50.  
  51.     APPENDICES
  52.     ----------
  53.  
  54.     NETSTART.COM
  55.     Ideas for next releases
  56.     Search's principles
  57.     Connection's mechanism
  58.     The author
  59.  
  60.  
  61.  
  62.                 ==============
  63.                  INTRODUCTION
  64.                 ==============
  65.  
  66. __________________
  67. NETLIST's  purpose
  68.  
  69.     NETLIST performs various tests on NetBIOS networks. NetBIOS protocols
  70.     are mainly run on Token-Ring and PC Network hardware, but there are
  71.     implementations over TCP/IP and AppleTalk.
  72.  
  73.     NETLIST can:
  74.  
  75.      -- show current network users, by quickly checking the presence of
  76.     a list of selected users, doing up to 170 tests per second,
  77.  
  78.      -- scan a range of adapters by number, to show connected ones,
  79.  
  80.      -- give extensive information and usage statistics about any adapter
  81.     on the network,
  82.  
  83.      -- give an explanation about NetBIOS return codes.
  84.  
  85.     User's list can be automatically created and later updated. Results
  86.     can be automatically time-stamped and archived.
  87.  
  88.     NETLIST supports two simultaneous LAN adapters.
  89.  
  90. _____________
  91. Prerequisites
  92.  
  93.     Have a working NetBIOS driver
  94.     -----------------------------
  95.  
  96.     All tests are performed at the NetBIOS level of protocols, so in
  97.     order to be detected or tested, the user must have an installed and
  98.     working NetBIOS that could answer NETLIST. The machine on which
  99.     NETLIST is run must have NetBIOS too.
  100.  
  101.     The NetBIOS layer will be active on a machine if one of the following
  102.     network softwares is running:
  103.     -- IBM PC-LAN (Microsoft Network, in MS-Windows 3.0 terminology)
  104.     -- Da Vinci eMAIL
  105.     -- Future Soft DynaComm
  106.     -- Sun Microsystems TOPS    (*)
  107.     -- Novell NetWare        (*)
  108.     -- Microsoft/3Com LAN Manager
  109.     and generally if any NetBIOS based software has been used since the
  110.     boot.
  111.  
  112.     (*)    Netware and TOPS aren't NetBIOS based networking softwares, but
  113.     they can provide NetBIOS services if the respective drivers have
  114.     been loaded. You will only be able to detect people who did that.
  115.  
  116.     TOPS' NetBIOS driver is TNETBIOS.EXE and should be loaded after
  117.     ALAP and PSTACK. You should add the /... parameter on ALAP command
  118.     line.
  119.  
  120.     Netware's driver is NETBIOS.EXE. It should be loaded after IPX.COM
  121.     or after NET?.COM.
  122.  
  123.     IBM's dxmT0mod.sys NetBIOS driver isn't automatically activated on
  124.     adapter opening, except when it opens the adapter itself. So you
  125.     don't have an active NetBIOS layer if after the boot you only
  126.     started:
  127.     -- IBM PC-3270 emulation,
  128.     -- IBM Token-Ring bridge program,
  129.     -- IBM TCP/IP suite of programs,
  130.     -- IBMTOKEN.COM (Brian Fisher's 'Ethernet' packet driver
  131.        for TCP/IP over Token-Ring).
  132.  
  133.     However, running NETLIST will activate your NetBIOS layer after
  134.     the start of the PC-3270 emulation or after the installation of
  135.     IBMTOKEN.COM. NETLIST cannot however activate NetBIOS on remote
  136.     adapters.
  137.  
  138.     To simply start the NetBIOS layer there is NETSTART.COM, that you
  139.     could insert at the end of batch files used to launch non NetBIOS-
  140.     based network applications.
  141.  
  142.     Have a database of users or an momentaneous access to network machines
  143.     ----------------------------------------------------------------------
  144.  
  145.     In order to detect the presence of a user or to test his adapter, you
  146.     have to know either one of the network names declared by his NetBIOS
  147.     network software (for exemple the name PC-LAN has been started with)
  148.     or the permanent identification number of his adapter.
  149.  
  150.     Testing adapter numbers is better than testing names, because an
  151.     adapter number will be present on the network as soon as NetBIOS is
  152.     started, whereas network names can change and depend on the currently
  153.     used software.
  154.  
  155.     The adapter number can be obtained with NETLIST either remotely, from
  156.     an active name or locally, running NETLIST on the machine the adapter
  157.     is installed in.
  158.  
  159.     To create users' database, run REGISTER.BAT from a diskette on each
  160.     machine you want to register. You will be asked to input a few words
  161.     to identify the current machine. See details below.
  162.  
  163. ________________________
  164. New version 1.3 features
  165.  
  166.         Describes remote adapters better...
  167.         -----------------------------------
  168.  
  169.     -- NETLIST shows whether PC-LAN is running on remote adapters.
  170.  
  171.     -- The /X option displays all the names found on adapters during
  172.        a search or in a scan.
  173.  
  174.     -- Adapter status display has been adapted to new NetBIOS drivers.
  175.        Now, it indicates the type of the adapter hardware. Various
  176.        other fields have been changed.
  177.  
  178.         Is easier to use...
  179.         -------------------
  180.  
  181.     -- Configuration files set defaults. No more need for batch files.
  182.  
  183.     -- User's database can be set up with a minimal effort.
  184.  
  185.     -- The /F option has a default argument (NETLIST.NAM). The /S option
  186.        is more intelligent.
  187.  
  188.     -- Now when NETLIST doesn't find a name or an adapter number, it
  189.        clearly indicates how it understood the given input string.
  190.  
  191.     -- Name and adapter number syntaxes are better checked.
  192.  
  193.     -- Now slash syntax for funny chars in names is used as often as
  194.        possible, except when saving screen place is important. No
  195.        slash is put in front of adapter numbers when there is no need
  196.        for it.
  197.  
  198.                 ...and more powerful!
  199.         ---------------------
  200.  
  201.     -- Every command updates the specified or default namefile if /U
  202.        option is specified.
  203.  
  204.     -- The /R [times] options asks to loop the test continuously or
  205.        "times" times.
  206.  
  207.     -- The monitor option (/M) asks NETLIST to both:
  208.      -- clear the screen and start displaying from the top,
  209.      -- display received and transmitted frames instead of adapter
  210.         numbers.
  211.  
  212.     -- Adaptative use of adapter resources will try to recover from
  213.        errors which caused a premature end in the 1.2 version.
  214.  
  215.     -- NETLIST tries to find the right interrupt to use. You can impose
  216.        an interrupt if needed.
  217.  
  218.         Some (small) 1.2 bugs have been fixed:
  219.         --------------------------------------
  220.  
  221.     -- Doesn't display inopportune messages anymore when used with 4DOS,
  222.        the COMMAND.COM replacement.    
  223.     -- Missing newlines in /D option display.
  224.     -- Missing fourth digit in the displayed adapter numbers' range
  225.        (/S option).
  226.     -- Number of available NCBs on remote adapters was +1 than what
  227.        it should be.
  228.     -- Wasn't correctly working from the root directory.
  229.  
  230. ____________________
  231. Version 1.2 features
  232.  
  233.     -- NETLIST can scan a given interval of adapter adresses.
  234.  
  235.     -- It can automatically update the network names and adapters'
  236.        identifiers database, replacing NetBIOS names with adapter
  237.        identifiers.
  238.  
  239.     -- NETLIST can display the full status of any given adapter and
  240.        the status of all sessions on the local one.
  241.  
  242.     -- When NETLIST has to open the adapter, it warns about the additio-
  243.        nal (10 second) delay and gives some feedback by displaying dots
  244.        at 1/2 second intervals during the process.
  245.  
  246.     -- The parameters of the search (speed, precision) can be adjusted
  247.        through command line switches.
  248.  
  249.     -- NETLIST gently stops on a Ctrl-C or Ctrl-Break request, after
  250.        cancelling all the outstanding polls.
  251.  
  252.     -- The result of each scan can be automatically archived to a file
  253.        for later retrieval.
  254.  
  255.     -- NETLIST can wait for a while before returning to DOS.
  256.  
  257.     -- NETLIST can list NetBIOS error/reply codes with their meaning.
  258.  
  259.     -- NETLIST displays user friendly error messages, that should help
  260.        the novice to compose a correct command line.
  261.  
  262.  
  263.  
  264.                 ==============
  265.                  USER's GUIDE
  266.                 ==============
  267.  
  268.  
  269.      [-----------------------------------------------]
  270.      [        Notational conventions         ]
  271.      [-----------------------------------------------]
  272.      [        []    designs an optional element     ]
  273.      [   { | | }    asks to select one alternative     ]
  274.      [    ...    represents any string         ]
  275.      [-----------------------------------------------]
  276.  
  277. _____________________________
  278. NETLIST's command line syntax
  279.  
  280.     NETLIST's command line syntax is basically:
  281.  
  282.         NETLIST  [options]  arguments
  283.  
  284.     "arguments" determine the function NETLIST performs, so there should
  285.     be only one per run most of the time.
  286.  
  287.     Possible arguments (some look like options...) are:
  288.  
  289.     /H or /?                         Display help
  290.     /F  [NameFile]            Search for adapters and names from
  291.                     namefile
  292.     /S  \FirstAdapterID  {\CompleteLastAdapterID | IncompleteAdapterID}
  293.                     Scan this range of adapters
  294.     NetworkName            Display data about this network name
  295.     *                Display data about local adapter
  296.     \AdapterID            Display data about this adapter
  297.  
  298.     Available options are:
  299.  
  300.     /{0|1}                Primary/secondary adapter
  301.     /A  ArchiveFile            File where archive results
  302.     /B  NbOfBlocksToUse        Speed of the search
  303.     /D                Set debug mode
  304.     /E                Display possible NetBIOS return codes
  305.     /I                Interactive update mode
  306.     /L  [[HH:]MM:]SS        Wait after scan/search completion
  307.     /M                Select monitor mode
  308.     /N  [configfile]        Use another config file or none
  309.     /P  HexIntNo            Use this interruPt for NetBIOS comms
  310.     /R  [times]            Repeat the test
  311.     /T  NbOfTicksToWaitForAnAnswer    Precision of the search
  312.     /U  [updatefile]        Update database
  313.     /X                Display all names
  314.  
  315.     Both upper case and lower case are accepted.
  316.     Each option letter must be preceeded by a slash.
  317.     Spaces are compulsory only after option argument (/R/M/X is valid,
  318.     but not /R1/M/X).
  319.     Some options may be not suitable for all functions.
  320.  
  321.     A description of arguments and options follows:
  322.  
  323.     ______
  324.     /H, /?
  325.  
  326.     Display a help screen.
  327.  
  328.     ______________
  329.     /F  [NameFile]
  330.  
  331.     Test the presence of the NetBIOS names and adapter numbers
  332.     listed in the NameFile database. If a name or adapter is
  333.     present on the network, display one line of information about
  334.     it.
  335.  
  336.     NameFile is a text file, a combination of two types of lines:
  337.  
  338.         NetworkName                [Remark]  [...]
  339.         \12-digitHexadecimalAdapterID    [Remark]  [...]
  340.  
  341.     NETLIST lists all found names and adapters in the following way
  342.     (a name always resides on an adapter):
  343.  
  344.   [MachineName]  AdapterHEXid  ConnectionTime  Sessions/Names [P] [*][Remark]
  345.  
  346.     with a header and a footer giving the date/time of the test,
  347.     used command line options and the time spend on the test.
  348.  
  349.     A "P" follows the names number if PC-LAN is running on the
  350.     remote adapter.
  351.  
  352.     * is put at the beginning of the remark's field when the test
  353.     has been done by network name rather than by adapter number.
  354.  
  355.     If NameFile isn't specified, the default NETLIST.NAM file is
  356.     taken.
  357.  
  358.     NameFile is looked for in the current directory or in the direc-
  359.     tory in which NETLIST.EXE resides. PATH environnement variable
  360.     isn't used, in order to avoid side effects.
  361.  
  362.     The exact format of each field of the input file and of the
  363.     displayed results is discussed in a separate section below.
  364.  
  365.     ___________________________________________________________________
  366.     /S  \FirstAdapterID  {\CompleteLastAdapterID | IncompleteAdapterID}
  367.  
  368.     Test the presence of the given range of adapter numbers.
  369.     The first four digits must be the same in both numbers.
  370.  
  371.     To indicate the last adapter to test, writing only the end of
  372.     its number is enough. For example, instead of:
  373.         /S  \10005A037500  \10005A0375FF
  374.     you could simply put
  375.         /S  \10005A037500 FF
  376.         on the command line.
  377.  
  378.     Control-Break and Control-C will safely interrupt the scan.
  379.  
  380.     Useful options: /T /B /U
  381.  
  382.     ___________
  383.     NetworkName
  384.  
  385.     Displays the NetBIOS status of the network adapter which has
  386.     declared this network name.
  387.  
  388.     See the section below for an explanation of NetworkName formats.
  389.  
  390.     Useful options: /T
  391.  
  392.     ____
  393.     *
  394.     Displays the status of the local adapter at the NetBIOS level
  395.     and the status of all NetBIOS sessions.
  396.  
  397.     __________
  398.     \AdapterID
  399.  
  400.     Displays the status of the given adapter. For local adapters
  401.     displays also the status of all its sessions.
  402.  
  403.     See the section below for an explanation of the \AdapterID
  404.     format.
  405.  
  406.     Useful options: /T.
  407.  
  408.     ______
  409.     /{0|1}
  410.  
  411.     Select either the primary (/0) or the secondary adapter (/1)
  412.     for the current command, when you have more than one.
  413.  
  414.     When you select a non-existent adapter, you could receive a
  415.     rather technical error diagnosis.
  416.  
  417.     _______________
  418.     /A  ArchiveFile
  419.  
  420.     Specifies the archive file to which the output of any command
  421.     should be appended for a later retrieval. You could use the
  422.     "NETLIST.LOG" name.
  423.  
  424.     Everything that appears on the screen (excepted error messages
  425.     and copyrights) will be registered there. A separation line
  426.     (79 '=') is inserted before any new log.
  427.  
  428.     In a future version, the format of this output could be
  429.     different from the one seen on the screen, so that statistics
  430.     could be more easily performed on it later.
  431.  
  432.     ___________________
  433.     /B  NbOfBlocksToUse
  434.  
  435.     Specifies the number of polls to perform simultaneously. Valid
  436.     only with /S or /F.
  437.  
  438.      [    A poll is associated with a NetBIOS Control     ]
  439.      [ Block (called Message Control Block in the Token-  ]
  440.      [ Ring Technical Reference Manual), so that is where ]
  441.      [ the name of this option comes from.              ]
  442.  
  443.     By default, NETLIST performs as many simultaneous polls as it
  444.     can with the available memory and adapter configuration, so
  445.     this option can only be used to limit used resources.
  446.  
  447.     In order to increase the number of simultaneous polls, you
  448.     should modify NetBIOS's configuration: increase the number
  449.     of outstanding NetBIOS control blocks that it should allow.
  450.  
  451.     If you use IBM's drivers ("LAN Adapter Support Program"),
  452.     the default value is 12 (of which 11 can be used for the
  453.     simultaneous polls) and you should add or modify the
  454.  
  455.                 C=number
  456.  
  457.     parameter on the
  458.  
  459.         DEVICE = [disk:][dir]dxmT0mod.SYS  [...]
  460.  
  461.     line in your CONFIG.SYS file, then reboot the system. That will
  462.     increase the memory the driver will take. The maximum value is
  463.     about 255.
  464.  
  465.     The more simultaneous polls, the quicker a list or range of
  466.     adapters will be searched,
  467.  
  468.                 BUT
  469.  
  470.     -- NETLIST has an internal overhead in handling the polls.
  471.        This overhead will become significant with a high number
  472.        of blocks.
  473.  
  474.     -- You won't be able to ask for more simultaneous polls than
  475.        the number of response buffers that can fit in your RAM.
  476.  
  477.     -- NetBIOS is internally limited and will prevent you from
  478.        reaching very high search speeds (see the "Search's
  479.        principles" section below).
  480.  
  481.     If Blocks is higher than the available maximum, it will be
  482.     adjusted and a warning will be issued.
  483.  
  484.     ____
  485.     /D
  486.  
  487.     Do the search in the Debug mode. Valid only for /S and /F modes.
  488.  
  489.     Display one line for each tested adapter, even those not present
  490.     on the network. This will simply copy the information from
  491.     NameFile for adapters or network names which didn't answered.
  492.     There will be no connection time nor session/names data in
  493.     those lines.
  494.  
  495.     ____
  496.     /E
  497.  
  498.     Display possible return values for NetBIOS commands, along with
  499.     their meaning.
  500.  
  501.     The meaning is mostly suitable for PC Network adapters.
  502.  
  503.     Related options: None
  504.  
  505.     ____
  506.     /I
  507.  
  508.     Interactive mode: Ask for a description string for an adapter
  509.     which doesn't have one yet in the current database. Save this
  510.     description in the remark-field of the namefile database. Spaces
  511.     will be replaced with underscores (_).
  512.  
  513.     Valid only if the update (/U) mode has been selected.
  514.  
  515.     Without the /I option, a question mark (?) will be put instead
  516.     of the remark.
  517.  
  518.     The first of adapter's NetBIOS names will always be written
  519.     as the third field, except if there is no NetBIOS names in
  520.     the adapter.
  521.  
  522.     _____________________________
  523.     /L  [[Hours:]Minutes:]Seconds
  524.  
  525.     The deLay (counted from the start of the program) to wait before
  526.     returning to DOS. To be used when running a loop with the /R
  527.     option or in a batch file.
  528.  
  529.     Related options: /A /R
  530.  
  531.     ____
  532.     /M
  533.  
  534.     Clear the screen before displaying results. Display received and
  535.     transmitted NetBIOS packets instead of adapter numbers. Useful
  536.     when continuously monitoring a list of nodes or a specific
  537.     name/adapter.
  538.  
  539.     If the list is more than 19 entries long, in the repeat mode (/R)
  540.     legends will be suppressed in following screen updates.
  541.  
  542.     This command clears the unused portion of the screen. It supports
  543.     the /X option, but only when the display of additional names
  544.     doesn't take more than one line, ie up to about 5-6 additional,
  545.     non PCLAN names.
  546.  
  547.     Related options: /R /L
  548.  
  549.     ________________
  550.     /N  [coNfigfile]
  551.  
  552.     Don't use the settings of the NETLIST.DEF configuration file.
  553.     If there is an argument for /N, use it as the new configuration
  554.     file instead of NETLIST.DEF.
  555.     coNfigfile is first looked for in the current directory, then
  556.     in NETLIST's directory. If NETLIST doesn't find coNfigfile,
  557.     it stops with an error message.
  558.  
  559.     Put in a configuration file, /N will void it.
  560.     The coNfigfile parameter is only valid on the command line.
  561.  
  562.     The default config file will always be read, except when the /N
  563.     option is the first option on the command line.
  564.  
  565.     ____________
  566.     /P  HexIntNo
  567.  
  568.     Force NETLIST to use the HexIntNo interrupt to communicate with
  569.     NetBIOS. NETLIST will not call any other interrupts when the /P
  570.     option is specified.
  571.  
  572.     HexIntNo is the 2-digit hexadecimal number of the interrupt, NOT
  573.     followed by an 'H' nor preceeded by anything, not quoted in IBM
  574.     fashion... Just 2 hexadecimal digits!
  575.  
  576.     Interrupts below 28H are rejected.
  577.  
  578.     Remark: Without the /P option NETLIST will test for the
  579.     installation of an application-level networking software and
  580.     use either the 2AH or the 5CH interrupt depending on the
  581.     responses and errors it gets.
  582.  
  583.     ___________
  584.     /R  [times]
  585.  
  586.     Repeat the test "times" times or continuously if no "times"
  587.     argument is given.
  588.  
  589.     Related options: /F /S /L /A
  590.  
  591.     ______________________________
  592.     /T  NbOfTicksToWaitForAnAnswer
  593.  
  594.     Adjust the timeout for commands that poll remote adapters.
  595.     Specifies the number of clock ticks an adapter is given to
  596.     respond within.
  597.  
  598.     3 is the default value. 99 is the maximum.
  599.  
  600.         [1 tick = 1/18.2 of a second]
  601.  
  602.     This parameter can only decrease the default 3 second NetBIOS
  603.     time-out, so there will be generally no effect in giving values
  604.     greater than 50.
  605.  
  606.     _______________
  607.     /U [updatefile]
  608.  
  609.     This option will update the user's database (NameFile) with the
  610.     the results of the current test. If the database doesn't exist,
  611.     it will be started in NETLIST's directory.
  612.  
  613.     The update will be of 3 kinds:
  614.  
  615.     -- If the search is made from a NameFile, entries beginning
  616.        with a "Name" will be turned into "\HexadecimalAdapterID"
  617.        entries;
  618.  
  619.     -- If a by-AdapterID scan is done, NameFile will be either
  620.        updated or created with the adapter IDs effectively found;
  621.  
  622.     -- If a status display is asked for a local (*) or remote
  623.        adapter, NETLIST will add its data to the configuration
  624.        file if this adapter isn't already mentioned there.
  625.  
  626.     The update process will preserve any fields of the NameFile
  627.     other than the NetworkName or \AdapterID field.
  628.  
  629.     A temporary NETLIST.$$$ file will be used during the modifi-
  630.     cation process and must be writable in the NameFile directory
  631.     (ie the directory must be writable -- non-writable directories
  632.     exist on file servers even if they don't exist on the local
  633.     machine; if you know how to make a local directory read-only
  634.     let me know! -- and the NETLIST.$$$ should not be read-only if
  635.     it exists).
  636.  
  637.     When using the /U option, the namefile will be updated even if
  638.     you interrupt the scan/search with a Control-Break.
  639.  
  640.     If an "updatefile" is indicated, discovered adapters (in a /S
  641.     scan) or users known only by name (in a /F search) will be
  642.     recorded into, with their adapter number. An existing
  643.     "updatefile" will be appended.
  644.  
  645.     The format of "updatefile" is:
  646.  
  647.         \AdapterID    NetworkName    Date
  648.  
  649.     Spaces in dates are replaced with underscores.
  650.  
  651.     If there is no NetworkName, the corresponding field will be
  652.     blank or the remark will be put there instead (in a /F search).
  653.  
  654.     Related options: /I  (interactive update)
  655.  
  656.     ____
  657.     /X
  658.  
  659.     Display all the names found on adapters in a /F search or in
  660.     a /S scan. Only non PC-LAN names will be displayed.
  661.  
  662. __________________________________________
  663. Explanation of various fields and entities
  664.  
  665.     ___________
  666.     NetworkName
  667.  
  668.     You communicate on a NetBIOS network by using names. The NetBIOS
  669.     software maintains a table of names that his adapter is known
  670.     by. These names are provided to the NetBIOS program by the
  671.     application program.
  672.  
  673.     NetworkName is a NetBIOS name on the adapter to test. It can be
  674.     the PC-LAN name, or any other name defined to NetBIOS by the
  675.     software run on adapter's machine.
  676.  
  677.     NetworkNames are limited to 16 characters, the maximal length
  678.     of NetBIOS network names. They will be internally padded with
  679.     blanks up to 16 characters if they have less than that.
  680.  
  681.     It is case-sensitive. PC-LAN converts the name on the NET START
  682.     command line to uppercase before declaring it on the network,
  683.     so when you search for one, type it in uppercase.
  684.  
  685.     To look for names that contain non-displayable characters, write
  686.     those characters in hexadecimal and preceed each of them with a
  687.     \ in the NetworkName. To insert \'s into a NetworkName, double
  688.     them.
  689.  
  690.     To test a name with embedded blanks, surround it with quotes.
  691.  
  692.     For example, the NetworkName MIROWSKI\03 would be understood
  693.     as a name with 8 letters (M,I, etc.) followed by the char whose
  694.     ASCII code is 3, then padded with blanks up to 16 characters.
  695.  
  696.     You could also write the above name as \\\4DI\52OWS\4BI\03
  697.  
  698.     The NetworkName "MIROWSKI       \03" would be understand as
  699.     containing 8 letters, then 7 blanks and finally the char whose
  700.     ASCII code is 3. As the total is already 16, no padding will
  701.     be done.
  702.  
  703.     You CANNOT write \03 as \3.
  704.  
  705.     If you run NETLIST from a batch file, for example WHO.BAT:
  706.         @ECHO OFF
  707.         NETLIST some-parms %1 %2 %3 %4 %5
  708.     you cannot give the command WHO /N "name    \somehex" to see
  709.     "name    \somehex" status, because DOS passes "name  and \somehex
  710.     as separate arguments (%1 and %2). You must call NETLIST directly.
  711.  
  712.     __________
  713.     \AdapterID
  714.  
  715.     Every adapter has an internal name by which it is always known
  716.     on the network. That is a 6 byte number, which can be handled
  717.     through a 12-digit hexadecimal representation.
  718.  
  719.     It can be obtained by running NETLIST with a NetworkName or *
  720.     argument. In the first case NETLIST will display the number of
  721.     the adapter NetworkName resides on. In the second one, NETLIST
  722.     will give the number of your own adapter.
  723.  
  724.     As NetworkNames and AdapterIDs are handled by the same routine,
  725.     the latter must be preceeded with a back-slash (\) in order to
  726.     be distinguished from the former.
  727.  
  728.     On all the Token-Ring adapters I have seen so far, numbers began
  729.     with 10005A... Mine is 10005A037592. So when I poll for my own
  730.     adapter status, I do either
  731.  
  732.                 NETLIST *
  733.     or
  734.             NETLIST \10005A037592
  735.  
  736.     The display from those two commands aren't exactly the same,
  737.     because no sessions are usually attached to the adapter number
  738.     whereas all are to the star name.
  739.  
  740.     ___________
  741.     MachineName
  742.  
  743.     MachineName is the first of the NetBIOS network names found on
  744.     any adapter. It is always the PC-LAN name if PC-LAN is running.
  745.  
  746.     It can be blank if search has been done by adapter number and
  747.     the adapter has no names defined.
  748.  
  749.     ______________
  750.     ConnectionTime
  751.  
  752.     ConnectionTime is the time since the start of the NetBIOS layer,
  753.     which is usually the same as the time since the adapter's
  754.     opening.
  755.  
  756.     ConnectionTime is expressed in days, hours and minutes.
  757.  
  758.     ________
  759.     Sessions
  760.  
  761.     Sessions is the number of pending NetBIOS sessions, i.e CALL-
  762.     Pending, LISTEN-Pending, Established, Abnormally Ended, HANG-
  763.     UP-Pending or HANG-UP-Complete.
  764.  
  765.     In practice, it means that servers will show a number of ses-
  766.     sions superior to the established ones because they LISTEN for
  767.     incoming calls. PC-LAN servers will always have at least 2 pen-
  768.     ding sessions (LISTENING).
  769.  
  770.     For PC-LAN users, the number of sessions will be number of
  771.     servers they are connected to. If you use, for example, the
  772.     \\S1\PUBLIC disk, the \\S1\LASER printer, the \\SERVER\PUBLIC
  773.     and \\SERVER\NCR disks, you will have only two sessions.
  774.  
  775.     _____
  776.     Names
  777.  
  778.     Names is the number of names the adapter has declared to the
  779.     net. People with 3 or more names usually have PC-LAN running,
  780.     which is indicated by the "P" letter following the "Names"
  781.     number.
  782.  
  783.     ______
  784.     Remark
  785.  
  786.     Remarks help to identify an adapter when search is done by
  787.     adapter number and the connected machine has no network name.
  788.  
  789.     Only the first 22 characters are displayed and only till the
  790.     first space.
  791.  
  792.     In order to put white spaces in remarks, you should replace
  793.     them with underscores (_). Those will be substituted with spaces
  794.     before they go to the display.
  795.  
  796.     Remarks are preceded by an asterisk when search has been done
  797.     by name. This enables you to progressively complete the list
  798.     of adapter numbers, starting from PC-LAN names.
  799.  
  800.     To make it automagically, use the /U option.
  801.  
  802. ________________________
  803. Creating users' database
  804.  
  805.     If you have access to all the machines you want to put into the
  806.     database, put NETLIST.EXE on a diskette, no other file with it
  807.     and run it on all those machines with the following command
  808.     line:
  809.             NETLIST /N/U/I/A NETLIST.LOG *
  810.  
  811.     NETLIST will prompt you for a description of the adapter, and
  812.     will add a line to NETLIST.NAM, creating it at the first time.
  813.     The line will be:
  814.         \AdapterID    your_remark    first_of_network_names
  815.  
  816.     If there are no names defined in the adapter, there will be no
  817.     "name" field.
  818.  
  819.     The whole operation will be logged to the NETLIST.LOG file. You
  820.     will thus obtain a complete database of all parameters of the
  821.     adapters on your network, at the NetBIOS level.
  822.  
  823.     If you don't want to enter anything manually, just drop the /I
  824.     option:
  825.             NETLIST /N/U/ANETLIST.LOG *
  826.  
  827.     NETLIST will put a question mark (?) as the remark field.
  828.  
  829.     You can edit the "namefile" later manually.
  830.  
  831.     Please remark that running NETLIST on all machines from the same,
  832.     non write-protected diskette is inherently dangerous, because if
  833.     one of the machines has a virus, you could infect the others.
  834.     There should be no hard disk accesses if you start NETLIST from
  835.     a diskette.
  836.  
  837.     If you don't have a physical access to the machines you wan't to
  838.     put into the list, you can either try to scan a range of adapter
  839.     numbers at a hour when there are lots of people on the net, or
  840.     try to get network names people use (for example their own name
  841.     for PC-LAN connections), put them into the NETLIST.NAM file (or
  842.     any other file you will have to specify after /F) and do:
  843.  
  844.             NETLIST /F /U /T1
  845.  
  846.     NETLIST will scan the list and replace names with adapter numbers
  847.     if the name is present on the network.
  848.  
  849.     If you want to do a scan, test adapter IDs starting with 10005A0,
  850.     10005A1 and 10005A2. At our site, all Token-Ring adapters have a
  851.     number starting with one of those sequences.
  852.  
  853.     Configure then your network driver so that it accepts a high
  854.     number of command blocks (simultaneous polls), for example 100.
  855.     See the description of the /B option to see how to do it with
  856.     standard IBM drivers. There is no sense in allowing more blocks.
  857.     Reboot your machine and issue for example:
  858.  
  859.         NETLIST /S \10005A100000 FFFFF /T1 /U /I
  860.  
  861.     The scan should take less than two hours. There is one million of
  862.     adresses to test, at a rate of about 170 per second.
  863.  
  864.     If you loose your patience before the end, make a Ctrl-Break.
  865.     This will end the scan while preserving any already acquired
  866.     data. The number of adapters effectively tested will be shown
  867.     on the last line.
  868.  
  869.     Don't specify the /D option! The search would be 20 times
  870.     longer.
  871.  
  872.     Remark: The REGISTER.BAT file in the archive can be used to
  873.     make up the database.
  874.  
  875. ___________________
  876. Configuration files
  877.  
  878.     All the options can be put into a configuration file and split
  879.     freely over several lines.
  880.  
  881.     Everything following the # and ; chars till the end of the line
  882.     will be ignored.
  883.  
  884.     The bigger the file, the slower NETLIST startup will be.
  885.  
  886. ________
  887. Examples
  888.  
  889.     With the following namefile, derived from my local database:
  890.                             [NETLIST.OLD]
  891.  
  892. SERVEUR    CTI-Server
  893. S1    S1-Server
  894. S3    S3-Server
  895. GLOBAL    Mail-server
  896. MIROWSKI    Adam_Mirowski
  897.  
  898.     and the:
  899.  
  900.     NETLIST /N/F/T1 /B 10 /0/UNETLIST.UPD /a NETLIST.LOG
  901.  
  902.     command, I got today:                [NETLIST.LOG]
  903.  
  904. ===============================================================================
  905. Tue Jun 12 12:05:06 1990       NETLIST 1.3        NetBIOS network users are now
  906. ===============================================================================
  907.   Name            Adapter ID        For      Sess/Names  Remarks
  908. ===============================================================================
  909. SERVEUR           10005A0616B4   4days 1:55     5/3 P    *CTI-Server
  910. S1                10005A1CCC3E  18days 1:09     8/3 P    *S1-Server
  911. S3                10005A266F6F  18days 1:12     5/3 P    *S3-Server
  912. GLOBAL            10005A1C8CF8   6days23:01     0/1      *Mail-server
  913. MIROWSKI          10005A037592         3:39     2/3 P    *Adam Mirowski
  914. ===============================================================================
  915. 5 users present, 5 tested (5 by name). 1 ticks/name, 10 blocks, 1 secs.
  916. Updating users' database...OK.
  917.  
  918.  
  919.     The created "updatefile" was:            [NETLIST.UPD]
  920.  
  921. \10005A0616B4    SERVEUR    Tue_Jun_12_12:05:07_1990
  922. \10005A1CCC3E    S1    Tue_Jun_12_12:05:07_1990
  923. \10005A266F6F    S3    Tue_Jun_12_12:05:07_1990
  924. \10005A1C8CF8    GLOBAL    Tue_Jun_12_12:05:07_1990
  925. \10005A037592    MIROWSKI    Tue_Jun_12_12:05:07_1990
  926.  
  927.  
  928.     Namefile has been updated into:            [NETLIST.NAM]
  929.  
  930. \10005A0616B4    CTI-Server
  931. \10005A1CCC3E    S1-Server
  932. \10005A266F6F    S3-Server
  933. \10005A1C8CF8    Mail-server
  934. \10005A037592    Adam_Mirowski
  935.  
  936.  
  937.     Remarks:    1) Any comments can be inserted in the "namefile".
  938.         2) One poll updates only one line in the "namefile".
  939.         3) If lines appear duplicated after the update, as in
  940.            the above example, they will stay there (to preserve
  941.            remarks, for example).
  942.  
  943.     With
  944.         NETLIST /N/a NETLIST.LOG  *
  945.     I got:                        [NETLIST.LOG]
  946.  
  947. ===============================================================================
  948. Tue Jun 12 12:05:55 1990        NETLIST 1.3                         Status of *
  949. ============================================================================/0=
  950. Adapter identifier        10005A037592     Primary release level                2
  951. Reporting period                  3:40     Last self-test                OK (00H)
  952. Max. session data frame size      1028     Token-Ring adapter, NetBIOS       v2.2
  953.                    --------------- No errors --------------
  954. Successfully Tx frames            6476     Successfully Rx frames            3716
  955. Available NCBs                      12     Pending sessions                     2
  956. Reset-configured NCBs               12     Reset-configured sessions           16
  957. Load-time-configured NCBs           12     Load-time-configured sessions       16
  958.  
  959.   Name              Num  Type    State
  960. ------------------  ---  ------  ----------------
  961. MIROWSKI              2  Unique  Registered
  962. MIROWSKI       \03    3  Unique  Registered
  963. MIROWSKI       \00    4  Unique  Registered
  964.  
  965.                    ----------- 2 active sessions ----------
  966. Pending Rx-(Broadcast)-Datagram      0     Pending Receive-Any                  0
  967.  
  968. Num  Session state     Local-name        Num  Remote-name       Num  Rec  Snd
  969. ---  ----------------  ----------------  ---  ----------------  ---  ---  ---
  970.   1  Established       MIROWSKI       *    4  S1                  2    0    0
  971.   2  Established       MIROWSKI       *    4  SERVEUR             2    0    0
  972.  
  973.  
  974.  
  975. _________________________________
  976. Starting and interrupting NETLIST
  977.  
  978.     NETLIST opens the adapter if necessary when it starts.
  979.  
  980.     When doing this, it displays the copyright notice and warns of the
  981.     additional 10 second delay. During the opening process it displays
  982.     a dot every half second to give some feedback and ends with an Ok.
  983.     This display cannot be removed.
  984.  
  985.     When NETLIST receives the Control-C or Control-Break request, it
  986.     informs the user that it has been accepted and tries to stop as
  987.     quickly as it can.
  988.  
  989.     It will interrupt the input stream of network names and adapter
  990.     numbers to test, causing a premature end of the program.
  991.  
  992.     All files will be closed. If the update mode was active, namefile
  993.     update will be done if the program was performing a scan search
  994.     (/S), but not if it was doing a NameFile scan (/F without /S).
  995.  
  996.     Don't keep Control-C or Control-Break pressed or the machine will
  997.     hang so that only the Reset key (if you're lucky enough to have
  998.     one, I'm not) or the main power switch will be able to restart it
  999.     by performing a hard boot.
  1000.  
  1001. __________________
  1002. Archive's contents
  1003.  
  1004.     NETLIST     EXE    Main program.
  1005.     NETLIST     DOC    This documentation.
  1006.     NETLIST     DEF    Sample configuration file.
  1007.     NETLIST     NAM    Sample "namefile" from "Examples" section above.
  1008.     NETLIST  OLD    Sample "namefile" ---------------"--------------
  1009.     NETLIST     LOG    Sample archive file -------------"--------------
  1010.     NETLIST     UPD    Sample "updatefile" -------------"--------------
  1011.     NETLIST  PIF    Program Information File for Windows.
  1012.     REGISTER BAT    Batch to automatize "namefile" database creation.
  1013.     WHO     BAT    Batch to start NETLIST with selected options.
  1014.     NETSTART COM    Short program to only start the NetBIOS
  1015.             on the local primary network adapter.
  1016.  
  1017. _______________
  1018. Remarks -- Bugs
  1019.  
  1020.     1)    There is an ambiguity on how to understand the command line when
  1021.     the last parameter is an option which accepts an optional argu-
  1022.     ment, as /F, /N, /R and /U do. Should this argument below to the
  1023.     option or should it be considered as a name to search for on the
  1024.     net?
  1025.  
  1026.     I choosed to consider this argument as the network name to search
  1027.     for if it is separated from the last option letter, and as the
  1028.     argument of the option if there is no space between it and the
  1029.     option letter.
  1030.  
  1031.     For example,
  1032.  
  1033.             NETLIST /U GLOBAL
  1034.  
  1035.     will be understand as "test the GLOBAL name and update the
  1036.     database if necessary", whereas
  1037.  
  1038.             NETLIST /UGLOBAL
  1039.  
  1040.     will tell NETLIST to consider GLOBAL as the name of the
  1041.     "updatefile" to create (or to update).
  1042.  
  1043.  
  1044.     2)    IBM's NetBIOS device driver is either the old NETBEUI.COM, or the
  1045.     newer DXMT0MOD.SYS.
  1046.  
  1047.     3)    The \ notation doesn't allow a funny char to start a normal name,
  1048.     because the name would then be taken as a hexadecimal adapter
  1049.     number (because of the single \ at the beginning). In order to
  1050.     minimize this problem, when the name/number parsing routine finds
  1051.     the hex number wrong it tries to interpret the whole string as a
  1052.     name.
  1053.  
  1054.     4)    The order of lines in output isn't necessarily the same as in the
  1055.     input file. This is especially true when the Debug option (/D) is
  1056.     used.
  1057.  
  1058.     5)    NETLIST needs 42 Ko to start, but additional space will be necessary
  1059.     for each poll block and associated data, mainly the response buffers,
  1060.     and for the /U option for storing NameFile updates (48 bytes per
  1061.     update) and making a DOS exec call.
  1062.  
  1063.     6)    If you don't want DOS to put his prompt at the end of the last line
  1064.     of NETLIST's display when run from a batch file, don't put any CR-LF
  1065.     on the line with NETLIST, just a Ctrl-Z.
  1066.  
  1067.  
  1068.                  ============
  1069.                   APPENDICES
  1070.                  ============
  1071.  
  1072. ____________
  1073. NETSTART.COM
  1074.  
  1075.     NETSTART.COM opens the local primary adapter or starts the NetBIOS
  1076.     on it if this adapter is already opened.
  1077.  
  1078.     [ Starting NetBIOS consists in opening the NetBIOS Service ]
  1079.     [ Access Point (F0), reserving place for link stations and ]
  1080.     [ starting receiving/responding to NetBIOS frames.       ]
  1081.  
  1082.     It doesn't display any messages, even if errors occur, like running
  1083.     it on a machine without network hardware and corresponding drivers
  1084.     installed.
  1085.  
  1086.     Remark: to start NetBIOS on an opened adapter there should be one
  1087.         available SAP (Service Access Point). The number of allo-
  1088.         wable SAPs is requested during adapter opening.
  1089.         Some network software could only request one SAP (for them-
  1090.         selves) or too few allowable link stations when they open
  1091.         the adapter, making it impossible to start a NetBIOS SAP
  1092.         later.
  1093.  
  1094. _______________________
  1095. Ideas for next releases
  1096.  
  1097.     The big improvement would be to find the users without any database,
  1098.     only by doing the right network calls. It seems that the Token-Ring
  1099.     network manager does such things (this software costs over $2000 here
  1100.     in France) on the corresponding network. But I wouldn't be surprised
  1101.     if in fact it simply (:-) monitored all the frames passing through his
  1102.     ring and asked the bridges for the same thing on other rings.
  1103.  
  1104.     NETLIST could receive a Windows or (why not?) Presentation Manager
  1105.     fancy user interface.
  1106.  
  1107.     NETLIST could better indicate what software is running on the remote
  1108.     nodes (currently only PC-LAN is detected), whether they listen for
  1109.     messages or provide some services (file sharing, etc.).
  1110.  
  1111. ___________________
  1112. Search's principles
  1113.  
  1114.     NETLIST simultaneously polls as many cards as has been requested by
  1115.     the /B switch, through non-blocking STATUS calls. Because the default
  1116.     answer time-out would lead to an unbearable slowness, each poll is
  1117.     interrupted by a CANCEL after a selected number of ticks.
  1118.  
  1119.     As the ticks decrease, adapters are given less time to respond, but
  1120.     even with one tick, there should be no losses.
  1121.  
  1122.     The number of simultaneous polls is limited to 255 by the NetBIOS
  1123.     software.
  1124.  
  1125.     The speed will grow with their number but only to a certain limit,
  1126.     because interrupting a poll is a blocking call.
  1127.  
  1128.     If we neglect the input reading speed and the overhead and if we
  1129.     suppose that all tested adapters do not answer, the speed function
  1130.     would behave like
  1131.  
  1132.         (18.2 / ticks) * blocks
  1133.  
  1134.     for small values of the "blocks" argument and big values of the
  1135.     "ticks" one, and reach the
  1136.  
  1137.         1 / CANCEL_delay_per_call
  1138.  
  1139.     asymptote for big values of "blocks" and small values of "ticks".
  1140.  
  1141.     All that explanation is purely speculative, as I don't have any
  1142.     mean to know what exactly is going on inside the adapter firmware
  1143.     and on various levels of interfaces and as I have no mean to measure
  1144.     anything with a precision superior to 1 clock tick. I've heard that
  1145.     it is possible to reprogram the system clock to quite high speeds,
  1146.     like 1000 ticks per second, but this necessitates too much effort
  1147.     and would introduce even more overhead into the program.
  1148.  
  1149. ___________________________________
  1150. Connection's mechanism (Token-Ring)
  1151.  
  1152.     Will be discussed in a future version of NETLIST's documentation.
  1153.  
  1154. __________
  1155. The author
  1156.  
  1157.     Adam Mirowski, Ecole Centrale de Paris, FRANCE
  1158.  
  1159.     The following people have provided help to test NETLIST in various
  1160.     environments:
  1161.  
  1162.     Alex at awiwuw11.bitnet
  1163.     C. H. Cheng at cucsc.bitnet
  1164.     David William at esoc.bitnet
  1165.     Peter Jaspers-Fayer at vm.uoguelph.ca
  1166.     Don Meyer at uiuc.edu
  1167.     David Priestley at p1.lancsp.ac.uk
  1168.     Dave Richardson at engr.uky.edu
  1169.     Tom Salzmann at ramona.cary.nc.us
  1170.     Samuel Lam at wimsey.bc.ca
  1171.     Sean at clarku.bitnet
  1172.     Bernd Wagener at doluni1
  1173.         and Warren Evans at ecncdc.bitnet
  1174.  
  1175.     Many thanks!
  1176.  
  1177.     This program is placed in public domain, but any donations
  1178.     will be accepted and will support the development of next
  1179.     versions.
  1180.  
  1181.     If you like it or simply use it, drop a line to
  1182.     MIROWSKI@FRECP12.BITNET or ADAMAINT@FRECP12.BITNET.
  1183.  
  1184.  
  1185.     ------------------------        ------- Till 8/90 -------
  1186.     Residence Monceau            Residence ECP
  1187.     1, square de Tocqueville        2, avenue Sully-Prudhomme
  1188.     78150 Le Chesnay            92290 Chatenay-Malabry
  1189.     FRANCE                FRANCE
  1190.