Introduction
This simple class for VC++ allows you to connection to Routing and Remote Access server running on Windows 2000. A connection can be made from the server locally, or using a remote Windows 2000 Client. It is possible to query when connected, the remote computers, users and their type of connections. This class also incorporates the ability to disconnect any of the remote connections individually.
Please note: This class requires the MPRAPI.H and MPRAPI.LIB found on Microsoft's latest SDK. This must be linked into compiler in the options of VC++. This class was only designed for Windows 2000. It may function at all under Windows XP but not under NT 4.0.
For more information on the code, see MSDN:RRAS - RASADMIN.
How It Works
Firstly, create the class object, CRRAS RRasServer
. Next use RRasServer.Connect
("MYSERVER")
or RRasServer.Connect("192.168.0.1")
. (Use NULL
if it's to query the local server.) This will return TRUE
for a good connection.
Secondly, enumerate the connections usingRRasServer.list()
. This fills the array, RRasServer.client[n]
with the username, computer name, remote ip address, port name, media type and how many seconds the client has been connected. In the array is the 'porthandle
' value. This can be passed to the RRasServer.terminate(client(n).porthandle)
and the connection 'n' will be terminated.
Also the RRasServer.connectedclients()
value returns the total number of current connections. Finally, the RRasServer.disconnect()
releases the connection to the RRAS server.
Updates in Version 1.1
- The
Class
returns CString
s instead of chars
- Continues to enumerate from the RRAS server after
ERROR_MORE_DATA
error until it completes. - Improved Casting of variables when passed or returned from the MPR API.
Conclusion
This is my first attempt for my years in writing C++ from my days in college using good ol' Turbo C.
History
- 1st July, 2003: Initial version
License
This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below. A list of licenses authors might use can be found here.