home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 11 Util
/
11-Util.zip
/
LMUTIL.ZIP
/
WKSTA.C
< prev
next >
Wrap
C/C++ Source or Header
|
1991-03-17
|
4KB
|
158 lines
/*
** Program: WKSTA
**
** Author: Roger L Soles
**
** Description:
**
** This example C program uses the NetWkstaGetInfo call to obtain
** information about the local work station.
**
** Instructions:
**
** WKSTA -[?{0,1,10}]
**
*/
#define LINT_ARGS
#include <stdio.h>
#include <stdlib.h>
#define INCL_NETWKSTA
#define INCL_NETERRORS
#include <lan.h>
void main (int argc, char * argv[])
{
/*
** Information structures
*/
struct wksta_info_0 far * WkstaInfo0;
struct wksta_info_1 far * WkstaInfo1;
struct wksta_info_10 far * WkstaInfo10;
char far * cptr;
API_RET_TYPE uRetCode = 0;
char far * pszServer = "";
short sLevel = 10;
char far * pbBuffer;
unsigned short cbBuflen = 0;
unsigned short cbTotalAvail = 0;
/*
** Process Command Line Options
*/
argc--; argv++;
cptr = argv[0];
if ( *cptr++ == '-' )
{
switch (*cptr)
{
case '0':
case '1':
sLevel = atoi (cptr);
switch (sLevel)
{
case 0:
case 1:
case 10:
break;
default:
printf ("Invalid Level: Select 0, 1, 10\n");
exit (1);
}
break;
case '?':
default:
printf ("\nUSAGE: WKSTA [-?{0,1,10}]\n");
exit (1);
}
}
/*
** Determine how large buffer needs to be
*/
uRetCode = NetWkstaGetInfo ( pszServer,
sLevel,
NULL,
0,
&cbTotalAvail);
if (uRetCode == NERR_BufTooSmall)
{
cbBuflen = cbTotalAvail;
pbBuffer = (char *) malloc (cbBuflen);
}
else
{
printf ("Error %04x\n", uRetCode);
exit(1);
}
/*
** Allocate storage
*/
uRetCode = NetWkstaGetInfo ( pszServer,
sLevel,
pbBuffer,
cbBuflen,
&cbTotalAvail);
if (uRetCode != NERR_Success)
{
printf ("Error %04x\n", uRetCode);
exit(1);
}
/*
** Print Out Level 0 information
*/
if (sLevel == 0)
{
WkstaInfo0 = (struct wksta_info_0 *) pbBuffer;
printf ("Computer Name: %Fs\n", WkstaInfo0->wki0_computername);
printf ("User Name: %Fs\n", WkstaInfo0->wki0_username);
printf ("Lan Group: %Fs\n", WkstaInfo0->wki0_langroup);
printf ("Logon Server: %Fs\n", WkstaInfo0->wki0_logon_server);
printf ("Char Time: %lu\n", WkstaInfo0->wki0_chartime);
printf ("Char Count: %hu\n", WkstaInfo0->wki0_charcount);
}
/*
** Print Out Level 1 information
*/
if (sLevel == 1)
{
WkstaInfo1 = (struct wksta_info_1 *) pbBuffer;
printf ("Logon Domain: %Fs\n", WkstaInfo1->wki1_logon_domain);
printf ("Other Domain: %Fs\n", WkstaInfo1->wki1_oth_domains);
printf ("Datagram Buffers: %hu\n", WkstaInfo1->wki1_numdgrambuf);
}
/*
** Print Out Level 10 information
*/
if (sLevel == 10)
{
WkstaInfo10 = (struct wksta_info_10 *) pbBuffer;
printf ("Computer Name: %Fs\n", WkstaInfo10->wki10_computername);
printf ("User Name: %Fs\n", WkstaInfo10->wki10_username);
printf ("Logon Domain: %Fs\n", WkstaInfo10->wki10_logon_domain);
printf ("Other Domain: %Fs\n", WkstaInfo10->wki10_oth_domains);
}
exit (0);
}