Development of IPControl has moved to Total IP Control.
Total IP Control is a single, unified IP-management module for The Major BBS v10 that consolidates and supersedes both IPControl (per-IP connection limiting) and PROXCLIP (proxy / real-IP restoration). This repository is kept for reference only and is no longer maintained.
Per-module IPv4 connection limiter for The Major BBS v10
IPControl is a gateway module for The Major BBS v10 that limits the number of simultaneously active users from a single IPv4 address within any target module. When a user selects an IPControl-protected menu option, the module checks how many active sessions from that IP address are already inside the target module. If the count is below the configured maximum, the user is forwarded. Otherwise, a configurable denial message is displayed and the user is returned to the menu.
- Per-module IP limiting — set independent connection limits for each module you want to protect
- Bypass key support — grant unrestricted access to sysops, co-sysops, or any BBS access key
- Module names with spaces — supports targets like
-= T-Lord =-out of the box - Configurable messages — customize denial, granted, and configuration error text in
IPCTRL.MSG - Optional audit logging — write access events, denials, and bypasses to the BBS audit trail
- The Major BBS v10 (Windows, x86)
- To build from source: Visual Studio 2022 Build Tools (v143 toolset, Win32/x86)
-
Copy the following files to your BBS root directory:
File Description IPCTRL.DLLModule binary IPCTRL.MDFModule definition file IPCTRL.MSGMessage file (configurable text and options) -
For each module you want to protect (e.g., MAJORMUD, TRADEWARS), open that module's
.MDFfile and add the following line after theModule Name:line:UNCONDITIONALThis tells the BBS to keep that module's DLL loaded even after its menu entry is redirected to IPControl. Without this, the BBS admin tool may remove the target module from
WGSERV.CFG, causing IPControl to fail with a configuration error at runtime. -
In the Menu Tree Editor, add a new Module Link page and set the module to
IPCTRL. -
Set the command string on that menu entry to configure the gateway (see Configuration below).
-
Save & Start BBS.
The gateway is configured via the BBS menu command string attached to the IPControl menu entry.
Syntax:
MODULE=<name> MAXIP=<n> [BYPASS=<key>[,<key>...]]
| Parameter | Required | Description |
|---|---|---|
MODULE |
Yes | Registered name of the destination module |
MAXIP |
Yes | Maximum simultaneous connections from a single IP |
BYPASS |
No | Comma-separated BBS access keys that skip the limit. Defaults to SYSOP |
MODULE=MAJORMUD MAXIP=3
MODULE=TRADEWARS MAXIP=2 BYPASS=SYSOP,COSYSOP
MODULE=GLOBALWAR MAXIP=1 BYPASS=SYSOP
MODULE=-= T-Lord =- MAXIP=2 BYPASS=SYSOP
Edit IPCTRL.MSG in the BBS Message File Editor to customize behavior:
| Option | Type | Description |
|---|---|---|
LOGENA |
Boolean | Enable audit trail logging for access events and denials |
DENIED |
Text | Message shown when the IP limit is reached (%d = the limit) |
GRANTED |
Text | Message shown on access (leave blank to silently forward) |
BADCFG |
Text | Message shown on a configuration error |
IPControl only counts currently active sessions inside the target module. Historical connections and total account logins are not considered. When a user selects the protected menu entry:
- IPControl parses the
MODULE,MAXIP, andBYPASSparameters from the command string. - The user's BBS access keys are checked against the bypass list — matching users are forwarded immediately.
- Active sessions inside the target module are scanned for a matching IPv4 address.
- If the count is below
MAXIP, the user is forwarded viaentmdl(). Otherwise the denial message is displayed.
Requirements: Visual Studio 2022 Build Tools, MBBS v10 SDK
& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe" `
IPCTRL\IPCTRL.vcxproj /p:Configuration=Release /p:Platform=Win32 /t:BuildOutput: IPCTRL\Release\IPCTRL.dll
See CHANGELOG.md.
Released under the MIT License.
IPControl is developed and maintained by Mark Laudenbach at Sysop Network.