Q> Кто по сети или локально шарится по моей(не моей)машине?
A>

//------------------------------------------------------
// Who.exe (c) 1999 Serge Andyk asvzzz@chat.ru
// Usage "who [server]". Show all local and network users
// on specified server and some additional information.
// Freeware.You can use and modify this source code
// as you wish.
//-------------------------------------------------------

#include <windows.h>
#include <lm.h>
#include <stdio.h>
#pragma hdrstop

#pragma comment( lib, "netapi32.lib" )

#define MAXLEN 256

SESSION_INFO_502 *buf, *cur;
WKSTA_USER_INFO_1 *bufw, *curw;
FILE_INFO_3 *buff,*curf;

DWORD read, total, resumeh, rc, i;
//-----------------------------------------------------------
void PrintError( DWORD err )
{
char msgbuf[4096];

FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
msgbuf, sizeof( msgbuf ), NULL );
printf( "Error %d: %s\n", err, msgbuf );
}
//-------------------------------------------------------

void PrintLocalUsers(LPWSTR server)
{
resumeh = 0;
do
{
bufw = NULL;

rc = NetWkstaUserEnum(
(LPTSTR)server,
1,
(LPBYTE*) &bufw,
2048,
&read,
&total,
&resumeh );

if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS )
break;

{
for ( i = 0, curw = bufw; i < read; ++ i, ++ curw )
{
printf( "%-12S %-15S %-12S \n",
curw->wkui1_username, curw->wkui1_logon_domain,
curw->wkui1_logon_server
);

}
}
if ( bufw != NULL )
NetApiBufferFree( bufw );

} while ( rc == ERROR_MORE_DATA );

if ( rc != ERROR_SUCCESS ) PrintError( rc );
}
//-------------------------------------------------------
void PrintNetUsers(LPWSTR server)
{
resumeh = 0;
do
{
buf = NULL;

rc = NetSessionEnum(
(LPTSTR) server,
NULL,
NULL,
502,
(LPBYTE*)&buf,
2048,
&read,
&total,
&resumeh );

if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS )
break;
{
for ( i = 0, cur = buf; i < read; ++ i, ++ cur )
{
printf( "%-12S %-12S %-27S %-22S\n",
cur->sesi502_username, cur->sesi502_cname, cur->sesi502_transport,
cur->sesi502_cltype_name
);
}
}

if ( buf != NULL )
NetApiBufferFree( buf );

} while ( rc == ERROR_MORE_DATA );

if ( rc != ERROR_SUCCESS ) PrintError( rc );
}
//-------------------------------------------------------
void PrintNetFiles(LPWSTR server)
{

resumeh = 0;
do
{
buff = NULL;

rc=NetFileEnum(
(char *) server,
NULL,
NULL,
3,
(BYTE**)&buff,
2048,
&read,
&total,
&resumeh );


if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS )
break;


for ( i = 0, curf = buff; i < read; ++ i, ++ curf )
{
printf( "%-12S %-15S \n",
curf->fi3_username, curf->fi3_pathname
);

}
if ( buff != NULL )
NetApiBufferFree( buff );

} while ( rc == ERROR_MORE_DATA );

if ( rc != ERROR_SUCCESS ) PrintError( rc );

}
//-------------------------------------------------------
int main( int argc, char *argv[] )
{

WCHAR server[MAXLEN];

if ( argc == 1 )
{
wcscpy(server,L"");
}
else
if ( argc == 2 )
{
mbstowcs( server, argv[1],MAXLEN);
}
else
{
printf("Usage - who [server]");
exit(1);
}

printf("\nLocal users:\n");
PrintLocalUsers(server);
printf("\nNet users:\n");
PrintNetUsers(server);
printf("\nFiles(Pipes)\n");
PrintNetFiles(server);

return 0;
}


Рейтинг@Mail.ru be number one Submitter.ru - Promoting!
Хостинг от uCoz