Beautiful GUI Application β’ Windows EXE β’ Powerful CLI
π₯ Download EXE β’ π Setup Guide β’ β¨ What's New β’ π Categories
1. Download abuse-reporter.exe from GitHub Releases
2. Extract files
3. Run abuse-reporter.exe
4. Settings tab β Paste API key β Save
Done! π
git clone https://github.com/xdrew87/abuse-reporter.git
cd abuse-reporter
pip install -r requirements.txt
python3 gui.py # GUI
# OR
python3 main.py # CLI- β Modern, professional interface with dark mode
- β Single & bulk IP reporting
- β Interactive confidence slider (0-100%)
- β Real-time progress tracking
- β API key management in Settings
- β Browse all 23 categories
- β Dry-run validation mode
- β Windows EXE ready to distribute
- β Interactive menu mode
- β Direct command arguments
- β Batch reporting scripts
- β Color-coded output
- β All features in GUI
- β All 23 AbuseIPDB Categories
- β IPv4 & IPv6 Support
- β Secure API Key Storage (.env file)
- β Type-Safe (Complete type hints)
- β Comprehensive Error Handling
- β Cross-Platform (Windows, Linux, macOS)
β Download from GitHub Releases
β Extract zip file
β Run abuse-reporter.exe
β No Python needed!
π Detailed Windows Setup Guide
Requirements:
- Python 3.8+
- pip package manager
Setup:
git clone https://github.com/xdrew87/abuse-reporter.git
cd abuse-reporter
pip install -r requirements.txt
python3 gui.py # Run GUIFor CLI only (no GUI dependencies):
pip install requests python-dotenv
python3 main.py| Tab | Purpose |
|---|---|
| π Submit | Report single IP with confidence level |
| π¦ Bulk | Submit multiple IPs at once |
| π Categories | Browse all 23 abuse categories |
| βοΈ Settings | API key setup & dark mode |
GUI (Windows EXE or Source):
python3 gui.py # Opens beautiful GUI windowCLI - Interactive:
python3 main.py # Menu-driven interfaceCLI - Direct Command:
python3 main.py --ip 192.0.2.1 --categories brute-force --comment "Attack attempt"CLI - Bulk Report:
python3 main.py --ip 192.0.2.1,198.51.100.1 --categories ssh --comment "Brute force" --confidence 95Test Before Submitting:
python3 main.py --ip 192.0.2.1 --categories phishing --dry-run --verbosepython3 main.py [OPTIONS]
--ip IP IPv4 or IPv6 address
--categories CATS Category names or IDs (comma-separated)
--comment TEXT Abuse description (max 1000 chars)
--confidence SCORE 0-100 (default: 100)
--dry-run Test without submitting
--verbose Show detailed output
--list-categories List all categories
--help Show help messageSingle Abuse Report:
python3 main.py --ip 203.0.113.45 \
--categories brute-force,ssh \
--comment "Failed SSH login attempts on port 22" \
--confidence 90Using Category IDs:
python3 main.py --ip 198.51.100.12 \
--categories 18,22 \
--comment "SSH brute force attack" \
--confidence 95Validate First (Dry-Run):
python3 main.py --ip 192.0.2.1 \
--categories phishing \
--comment "Phishing attempt" \
--dry-run --verbose| ID | Category | ID | Category |
|---|---|---|---|
| 1 | dns-compromise | 13 | vpn-ip |
| 2 | dns-poisoning | 14 | port-scan |
| 3 | fraud-orders | 15 | hacking |
| 4 | ddos-attack | 16 | sql-injection |
| 5 | ftp-brute-force | 17 | spoofing |
| 6 | ping-of-death | 18 | brute-force |
| 7 | phishing | 19 | bad-web-bot |
| 8 | fraud-voip | 20 | exploited-host |
| 9 | open-proxy | 21 | web-app-attack |
| 10 | web-spam | 22 | ssh |
| 11 | email-spam | 23 | iot-targeted |
| 12 | blog-spam |
π‘ Tips:
- Use by ID:
--categories 18,22,4 - Use by name:
--categories brute-force,ssh,ddos-attack - Mix both:
--categories 18,ssh,4
β Your Data is Safe:
- API keys stored locally in
.envfile only - Never hardcoded in source code
- HTTPS-only API communication
- Never exposed in error messages
abuse-reporter/
βββ gui.py # PyQt6 GUI application
βββ main.py # CLI orchestration
βββ client.py # AbuseIPDB API client
βββ categories.py # 23 category definitions
βββ validators.py # Input validation
βββ ui.py # Terminal UI utilities
βββ build.py # EXE build script (local only)
β
βββ logo.svg # Application logo
βββ requirements.txt # Python dependencies
βββ .env.example # API key template
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
βββ README.md # This file
βββ EXE_SETUP_GUIDE.md # Windows setup guide
βββ RELEASE_NOTES_v2.0.0.md # What's new
- GUI: PyQt6 6.6.0 (cross-platform)
- Build: PyInstaller (Windows EXE)
- Config: python-dotenv (secure storage)
- HTTP: requests library (API communication)
- Code: Full type hints, modular design
Python 3.8+ | Windows/Linux/macOS
Gracefully handles:
- β Invalid IP addresses (IPv4/IPv6)
- β Invalid categories
- β Missing/wrong API key
- β Network timeouts
- β API rate limiting
- β Server errors
- β Authentication failures
Want to help? We'd love it!
- Fork the repo
- Create feature branch:
git checkout -b feature/YourFeature - Commit:
git commit -m 'Add YourFeature' - Push:
git push origin feature/YourFeature - Open a Pull Request
MIT License - Use freely for reporting abuse and improving security!
See LICENSE file for details.
- AbuseIPDB - Powerful abuse database API
- PyQt6 - Beautiful GUI framework
- Python Community - Excellent libraries
π₯ Download v2.0.0 β’ π Setup Guide β’ β¨ What's New β’ π Issues
Make the internet safer, one report at a time. π‘οΈ