iStockPro | License Control Panel
--:--:--

📊 Dashboard Overview

Real-time snapshot of all iStockPro deployments

🏢
Total Clients
Loading...
🟢
Online Now
Live sessions
🚫
Blocked
Suspended access
⏱️
Trial Mode
Loading...
📅
Active Today
Unique heartbeats
🏢 Recent Client Activity
CompanyStatusLast PingLocationActions
Loading...
📈 Sessions — 7 Days
Mon
Tue
Wed
Thu
Fri
Sat
Sun
⚡ Live Events
Loading live feed...

🏢 All Clients

Manage activations, licenses and client information

— clients
CompanyCityContactRC / NICHardware IDStatusLicenseExpiryLast SeenActions
Loading...

🟢 Online Sessions

Clients currently running iStockPro

Loading...
Online Now
Live sessions
Heartbeats Today
Pings received
⚡ Active Sessions
CompanyLogin UserIP AddressLocationMachineOSConnectedDurationActions
Loading...

🚫 Blocked Clients

Suspended licenses — software shows error and closes

CompanyHardware IDCityBlocked SinceReasonByActions
Loading...

⏱️ Trial & Expiring Licenses

Extend trial periods or convert to full license

CompanyCityTypeDays LeftExpiresActions
Loading...

📋 Activity Log

Full audit trail of all admin actions and client events

TimeEventClientHardware IDChangeAdminNotes
Loading...

🔑 License Key Generator

Generate and assign activation keys to clients

Generate New Key
Generated Key
🔑
Enter Hardware ID and click Generate
Recent Keys (this session)
No keys generated yet

📖 Integration Guide

Step-by-step: connect iStockPro to this panel

1
Upload Server Files to Your Web Hosting
Take the server/ folder and upload all 5 PHP files to your web hosting (cPanel, VPS, or any PHP host with MySQL). Put them in a folder like /public_html/istock-license/
Your web server folder structure: /public_html/istock-license/ ├── config.php ← edit this first ├── validate.php ├── heartbeat.php ├── logout.php └── admin.php ← dashboard talks to this
2
Create the MySQL Database
In cPanel → phpMyAdmin (or MySQL Workbench), create a database called istockpro_licenses, then run the SQL file:
cPanel → phpMyAdmin → Import → choose file: database/LICENSE_SERVER_MySQL.sql OR run from MySQL command line: mysql -u root -p < LICENSE_SERVER_MySQL.sql Then get your API key: SELECT api_key FROM admin_users WHERE username = 'admin';
3
Edit config.php with Your Database Details
Open server/config.php and fill in your MySQL credentials:
define('DB_HOST', 'localhost'); define('DB_NAME', 'istockpro_licenses'); define('DB_USER', 'your_mysql_username'); define('DB_PASS', 'your_mysql_password'); define('ADMIN_API_KEY', 'paste_key_from_step_2');
4
Set Dashboard API URL in index.html
Open this index.html file, scroll to the bottom JS section, and change API_BASE:
Line ~10 of the script section in index.html: const API_BASE = 'https://your-domain.com/istock-license'; const API_KEY = 'paste_your_api_key_here';
5
Add LicenseManager.vb to Your iStockPro Project
In Visual Studio: right-click your iStockPro project → Add → Existing Item → choose project/LicenseManager.vb. Then install NuGet packages:
Tools → NuGet Package Manager → Package Manager Console: Install-Package Newtonsoft.Json Install-Package System.Management
6
Set Your Server URL in LicenseManager.vb
Open LicenseManager.vb and change line 27:
Private Const SERVER_URL As String = "https://your-domain.com/istock-license"
7
Add 2 Lines to frmMain.vb
This is the only code you write in your existing iStockPro project. Just 2 lines:
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' ... your existing startup code stays unchanged ... LicenseManager.Initialize() ' ← ADD THIS ONE LINE HERE End Sub Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing LicenseManager.Shutdown() ' ← ADD THIS ONE LINE HERE End Sub
8
Test & Register Your First Client
Build and run iStockPro. It will show an error (not registered yet). Note the Hardware ID shown in the error popup. Then in this panel → All Clients → Register Client — paste that Hardware ID, fill in the company info, generate a key. Go back to iStockPro, enter the key in the Activation screen. Done!
Flow summary: 1. iStockPro starts → reads HardwareID from CPU+motherboard 2. Sends HardwareID + ActivationKey to your server 3. Server checks MySQL → returns ok/blocked/expired 4. If ok → starts 5-minute heartbeat timer 5. Each heartbeat → sends company info, IP, machine, user 6. This panel shows live data from MySQL 7. When you block someone → next heartbeat closes their software
● Ready | Online: — | Total: — | MySQL · istockpro_licenses