IMPORTANT WARNING!
The automatic version will BLOCK ALL SUSPICIOUS CONNECTIONS WITHOUT ASKING.
For advanced users only with experience in:
- Firewall configuration
- Network troubleshooting
- Whitelist/Blacklist management
May interrupt critical services if not configured correctly.
What is it? These are the necessary dependencies to compile and run the network monitor.
Requirements:
- Windows 7 or higher (operating system)
- Administrator privileges (for firewall and network monitoring)
- Internet connection (for IP geolocation)
- Go 1.19 or higher (to compile source code)
Go Verification:
go versionIf you don't have Go installed, download it from: https://golang.org/dl/
What is it? This is the organization of files and folders of the network monitor.
File Structure:
Network-Monitor/
βββ network-monitor_Auto/ # Automatic version (blocking without confirmation)
β βββ network-monitor_Auto.go # Main source code
β βββ build.txt # Build command
β βββ go.mod # Go modules
β βββ go.sum # Dependency hashes
βββ network-monitor_Manual/ # Manual version (requires approval)
β βββ network-monitor_Manual.go # Main source code
β βββ web.go # Web server for dashboard
β βββ dashboard.html # Modern web interface
β βββ build.txt # Build command
β βββ go.mod # Go modules
β βββ go.sum # Dependency hashes
βββ README.md # Installation and usage guide
βββ LICENSE.txt # Software license
What is it? This is the process of converting source code into an executable.
Compilation Steps:
-
Open terminal or PowerShell as administrator
-
Navigate to the desired folder:
cd "c:\to\path\Network-Monitor with AI\network-monitor_Manual"- Compile the manual version:
go build -ldflags="-s -w" -o network-monitor_Manual.exe network-monitor_Manual.go web.go- Verify executable created:
dir network-monitor_Manual.exeWhat is it? This is the preparation of security lists and basic configuration.
Configuration Files:
# Example whitelist (allowed IPs)
192.168.1.1
10.0.0.1
127.0.0.1# Format: IP | Process | Organization | Reason | Effects
1.1.1.1 | malware.exe | Hacker Inc. | Malware | None
2.2.2.2 | * | Suspicious Network | Preventive Block | Possible service interruptionWhat is it? This is starting the monitor and using the web dashboard.
Execution Steps:
- Run as administrator:
# In PowerShell as administrator
.\network-monitor_Manual.exe-
Automatic Web Dashboard:
- Opens automatically at http://localhost:8080
- Modern interface with real-time updates
- Visualization of connections, lists, and statistics
-
Terminal Monitoring:
- You'll see real-time logs
- Suspicious connection alerts
- Manual blocking options
What is it? These are the enhanced functionalities of this version.
- Responsive interface with professional dark design
- Automatic updates every 5 seconds
- Real-time filters by status, IP, process
- Geolocation visualization with integrated maps
- Data export in CSV and JSON
- Multiple formats: TXT, CSV, JSON
- Organized sessions by date and time
- Direct integration with web dashboard
- Advanced search and filtering
- Automatic anomaly detection
- Validation of trusted executable hashes
- Geolocation with cache to optimize performance
- Windows Firewall integration
What is it? These are best practices to keep the system secure.
Security Recommendations:
- Review logs regularly (daily if possible)
- Keep lists updated with new known IPs
- Validate system executable hashes
- Monitor system performance
Security application that monitors network connections in real-time, developed in Go for Windows with modern web dashboard.
-
Real-time Monitoring
- Active TCP connections
- Associated processes
- Anomaly detection
-
Modern Web Dashboard
- Responsive interface with automatic updates
- Real-time connection visualization
- Advanced filters and search
- Data export in multiple formats
-
Access Control
- Whitelist (Allowed IPs)
- Blacklist (Blocked IPs/processes)
- Unknown connections list
- Executable hash validation
-
Geolocation
- Remote IP location
- Built-in cache for performance
- API query limits
- Map visualization
-
Firewall
- Automatic/Manual blocking
- Windows Firewall integration
- Detailed logging
- Change reversal
- Configuration file management
- Persistent storage for lists and logs
- Secure synchronization for concurrent access
- Support for multiple formats (TXT, CSV, JSON)
- IP geolocation information query
- Cache system for improved performance
- Query rate limiting
- Web dashboard integration
- Blocking unauthorized connections
- Operating system integration
- Block event logging
- Web interface for management
- Continuous network connection monitoring
- Anomaly detection
- Critical event management
- Process hash validation
- Real-time dashboard at localhost:8080
- REST API for data queries
- Automatic updates every 5 seconds
- Modern and responsive interface
- Automatic blocking without confirmation
- Ideal for:
- Expert users
- Strict protection
- Immediate response
- Risks:
- May block legitimate services
- Requires careful configuration
- Full user control
- Modern web dashboard included
- Ideal for:
- Environments requiring review
- Users who prefer full control
- Minimizing false positives
- Real-time visualization
- Possible false positives/negatives
- Performance on systems with many connections
- UAC permission dependency
- Requires Internet connection for geolocation
Solution: Run as administrator
Solution: Verify that port 8080 is available
Solution: Check Internet connection and API limits
Solution: Reduce monitoring frequency in configuration
To reduce the monitoring frequency and decrease CPU usage, you can modify the value in that line:
Location: network-monitor_Manual.go - Function StartMonitoring()
Current code:
ticker := time.NewTicker(100 * time.Millisecond) // 100ms detection-
Low CPU usage (recommended):
ticker := time.NewTicker(500 * time.Millisecond) // 500ms detection
-
Very low CPU usage:
ticker := time.NewTicker(1000 * time.Millisecond) // 1 second detection
-
Minimum CPU usage:
ticker := time.NewTicker(2000 * time.Millisecond) // 2 seconds detection
- Open the file
network-monitor_Manual.go - Search for the function
StartMonitoring() - Locate the line with
time.NewTicker(100 * time.Millisecond) - Change
100 * time.Millisecondto one of the suggested values - Save the file
- Recompile with the command:
go build -ldflags="-s -w" -o network-monitor_Manual.exe network-monitor_Manual.go web.go