home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lsmt213c.zip / getrout2.cmd < prev    next >
OS/2 REXX Batch file  |  1999-05-17  |  7KB  |  219 lines

  1. /*---------------------------------------------------------------------------*\
  2. |   Get Lan Server Token Ring Route info      (C) Alain Rykaert - APR98-MAY98 |
  3. \*---------------------------------------------------------------------------*/
  4.     Version = '1.03'
  5.     Say '* GETROUTE Version' Version
  6.  
  7.     Call Init                                 /* init dll's and other stuff*/
  8.  
  9.  /*====================================*/
  10.     OutFileName = 'GETROUTE.CSV'                /* Output file with results*/
  11.  /*====================================*/
  12.  
  13.     Say '* Output FileName:' OutFileName
  14.  
  15.     Parse Upper Arg DCName MacAddress
  16.  
  17.     If DCName = '' | MacAddress = ''
  18.       Then Do
  19.              Say '*'
  20.              Say '* Get LAN Server Token Ring Routing Information'
  21.              Say '*'
  22.              Say '* Usage: GETROUTE {DCName} {Destination Address}'
  23.              Say '*'
  24.              Say '* Sample: GETROUTE \\BEDDC01 400013203745'
  25.              Say '*'
  26.              Exit
  27.            End
  28.       Else Nop
  29.  
  30.     DCName = Strip(DCName,'L','\')
  31.     Say '* Server Name:' '\\'DCName
  32.  
  33.     Call OS2Ping MacAddress          /* check if reference adapter is found*/
  34.     If MCheck = 1
  35.       Then Nop
  36.       Else Do
  37.              Say '! Destination Address' MacAddress 'not found'
  38.              Exit
  39.            End
  40.  
  41.     RC = NetGetInfo(370, 'ServerModalInfo', '\\'DCName)  /* get server role*/
  42.     If RC = 0
  43.       Then Do
  44.              ServerRole = ServerModalInfo.Role
  45.              If WordPos('Primary', ServerRole) > 0     /* check server role*/
  46.                Then Nop
  47.                Else Do
  48.                       Say '! This is not a Primary Domain Controller' '07'x
  49.                       Exit
  50.                     End
  51.            End
  52.       Else Do
  53.              Say '! Error' RC
  54.              Exit
  55.            End
  56.  
  57.     RC = NetGetInfo(340, 'ServerName', '\\'DCName, 'Servers')/* get all servers*/
  58.     If RC = 0
  59.       Then Do
  60.             'if exist' OutFileName 'del' OutFileName
  61.              Call RxStemSort 'ServerName'
  62.              Say '* Total defined servers:' ServerName.0
  63.              Do i = 1 to ServerName.0
  64.                Counter = '('Right(i,Length(ServerName.0))'/'Right(ServerName.0,Length(ServerName.0))')'
  65.                Call Logit Copies('-', 60)
  66.                Call Logit '* ServerName:' Counter ServerName.i
  67.                If NetGetInfo(370, 'ServerModalInfo', '\\'ServerName.i) = 0
  68.                  Then Call GetInfo ServerName.i
  69.                  Else Say '> Not found'
  70.              End
  71.              Call Logit Copies('-', 60)
  72.            End
  73.       Else Say '! Error' RC
  74.  
  75.  
  76.     Exit
  77.  
  78.  GETINFO:/* -----------------------------------------------------------------*/
  79.  
  80.     Parse Arg ServerName
  81.  
  82.    'net admin \\'ServerName '/c set >' TempFile
  83.     Call Stream  TempFile, 'C', 'Close'
  84.  
  85.     Call SysFileSearch 'COMSPEC=', TempFile, 'Stem'
  86.     If Stem.0 = 1
  87.       Then Parse Value Stem.1 With . '=' ServerBootDrive ':' .
  88.       Else Do
  89.              Say '! Error: COMPSPEC not found' '07'x
  90.              Return
  91.            End
  92.  
  93.     IniFileName = '\\'ServerName'\'ServerBootDrive'$\ibmcom\protocol.ini'
  94.     If Trace Then Say IniFileName
  95.  
  96.     Call SysFileSearch 'BINDINGS', IniFileName, 'Stem'
  97.     If Stem.0 > 0
  98.       Then Parse Value Stem.1 With . '=' NicName '_' .
  99.       Else Say '! Error: file' IniFileName 'not found'
  100.  
  101.     Call SysFileSearch 'NETADDRESS', IniFileName, 'Stem'
  102.     If Stem.0 > 0
  103.       Then Do j = 1 to Stem.0
  104.              Parse Upper Value Stem.j With Begin '= "' Address '"' .
  105.              If Begin = 'NETADDRESS'
  106.                Then Do
  107.                       If Left(Address, 1) = 'T'
  108.                         Then Nop
  109.                         Else Do
  110.                                Route = ''
  111.                               'os2ping /a='Address '/w=1 /r >' TempFile '2>nul'
  112.                                Call SysFileSearch '->', TempFile, 'Stem'
  113.                                If Stem.0 > 0
  114.                                  Then Do z = 1 to Stem.0
  115.                                         Route = Stem.z '|' Route
  116.                                       End
  117.                                  Else Nop
  118.                                Text = ' ' Left(NicName, 8) '-' Address Route
  119.                                Call Logit Text
  120.                              End
  121.                     End
  122.                Else Nop
  123.            End
  124.       Else Say '! Error: file' IniFileName 'not found'
  125.  
  126.    'net use \\'ServerName'\'Left(ServerBootDrive,1)'$ /d >nul 2>nul'
  127.    'net use \\'ServerName'\ipc$ /d >nul 2>nul'
  128.    'net use \\'ServerName'\ibmlan$ /d >nul 2>nul'
  129.  
  130.     Return
  131.  
  132.  INIT:/* --------------------------------------------------------------------*/
  133.  
  134.    '@echo off'
  135.  
  136.     If Value('TREES',,'OS2Environment') = ''           /* Check for Tracing*/
  137.       Then Trace = 0
  138.       Else Trace = 1
  139.  
  140.     BootDrive = Left(Value('Comspec',,'OS2Environment'),2)
  141.  
  142.     If RxFuncQuery('SysLoadFuncs')
  143.       Then Do
  144.              Call RxFuncAdd SysLoadFuncs, RexxUtil, SysLoadFuncs
  145.              Call SysLoadFuncs
  146.            End
  147.       Else Nop
  148.  
  149.     LSRDrive = ''                      /* Check for Lan Server Drive Letter*/
  150.     PPath = Translate(Value('PATH',,'OS2Environment'))
  151.     x = Pos('\IBMLAN\NETPROG;', PPath) -2
  152.     If x > 0
  153.       Then LSRDrive = SubStr(PPath, x, 2)
  154.       Else Do
  155.              Say '* Could not determine the Lan Requester path'
  156.              Exit
  157.            End
  158.  
  159.     Call ChkFile LSRDrive'\ibmlan\netlib\lsrxut.dll'
  160.     If RxFuncQuery('LoadLSRXUTFuncs')
  161.       Then Do
  162.              Call RxFuncAdd LoadLsRxutFuncs, LSRXUT, LoadLsRxutFuncs
  163.              Call LoadLsRxutFuncs
  164.            End
  165.       Else Nop
  166.  
  167.     Call ChkFile BootDrive'\os2\dll\rxutils.dll'
  168.     If RxFuncQuery('RxLoadFuncs')
  169.       Then Do
  170.              Call RxFuncAdd RxLoadFuncs, RXUTILS, RxLoadFuncs
  171.              Call RxLoadFuncs
  172.            End
  173.       Else Nop
  174.  
  175.     TempFile = LSRDrive'\ibmlan\getroute.tmp'             /* Temporary file*/
  176.  
  177.     Return
  178.  
  179.  CHKFILE:/* -----------------------------------------------------------------*/
  180.  
  181.     Parse Arg File_To_Check
  182.  
  183.     If Stream(File_To_Check, 'C', 'Query Exists') = ''
  184.       Then Do
  185.              Say '! File not found:' File_To_Check
  186.              Exit
  187.            End
  188.       Else Nop
  189.  
  190.     Return
  191.  
  192.  LOGIT:/* ------------------------------------------------------------------*/
  193.  
  194.     Parse Arg Log_Text
  195.  
  196.     Say Log_Text
  197.  
  198.     If LineOut(OutFileName, Log_Text) = 0
  199.       Then Call Stream OutFileName, 'C', 'Close'
  200.       Else Say '! Error while writing' OutFileName '07'x
  201.  
  202.     Return
  203.  
  204.  OS2PING:/* ----------------------------------------------------------------*/
  205.  
  206.     Parse Arg Address
  207.  
  208.    '@os2ping /a='Address '/r /w=1 2>nul | Find "(" >' TempFile
  209.     If RC = 0                          /* MAC not found                    */
  210.       Then Do
  211.              MCheck = 0
  212.              Route = LineIn(TempFile)
  213.              Call Stream TempFile, 'C', 'Close'
  214.            End
  215.       Else MCheck = 1
  216.  
  217.     Return
  218.  
  219.