Skip to content

xdrew87/abuse-reporter

Repository files navigation

AbuseIPDB Reporter

Python 3.8+ PyQt6 License Status Version

Professional Abuse Reporter for AbuseIPDB

Beautiful GUI Application β€’ Windows EXE β€’ Powerful CLI

🎯 Quick Links

πŸ“₯ Download EXE β€’ πŸ“– Setup Guide β€’ ✨ What's New β€’ πŸ“‹ Categories


πŸš€ Getting Started

πŸͺŸ Windows Users (Easiest)

1. Download abuse-reporter.exe from GitHub Releases
2. Extract files
3. Run abuse-reporter.exe
4. Settings tab β†’ Paste API key β†’ Save
Done! πŸŽ‰

Full Windows Setup Guide β†’

πŸ’» Linux/Mac or Source Code

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

✨ Features

🎨 GUI Application (PyQt6)

  • βœ… 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

πŸ–₯️ CLI (Command Line)

  • βœ… Interactive menu mode
  • βœ… Direct command arguments
  • βœ… Batch reporting scripts
  • βœ… Color-coded output
  • βœ… All features in GUI

πŸ”’ Both Platforms

  • βœ… 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)

πŸ“¦ Installation & Setup

Option 1: Windows EXE (Recommended for Windows Users)

βœ“ Download from GitHub Releases
βœ“ Extract zip file
βœ“ Run abuse-reporter.exe
βœ“ No Python needed!

πŸ‘‰ Detailed Windows Setup Guide

Option 2: From Source Code (Developers)

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 GUI

For CLI only (no GUI dependencies):

pip install requests python-dotenv
python3 main.py

πŸ’‘ Usage Guide

GUI Tabs

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

Quick Examples

Quick Examples

GUI (Windows EXE or Source):

python3 gui.py   # Opens beautiful GUI window

CLI - Interactive:

python3 main.py  # Menu-driven interface

CLI - 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 95

Test Before Submitting:

python3 main.py --ip 192.0.2.1 --categories phishing --dry-run --verbose

πŸ“š API Documentation

CLI Arguments

python3 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 message

Examples

Examples

Single Abuse Report:

python3 main.py --ip 203.0.113.45 \
  --categories brute-force,ssh \
  --comment "Failed SSH login attempts on port 22" \
  --confidence 90

Using Category IDs:

python3 main.py --ip 198.51.100.12 \
  --categories 18,22 \
  --comment "SSH brute force attack" \
  --confidence 95

Validate First (Dry-Run):

python3 main.py --ip 192.0.2.1 \
  --categories phishing \
  --comment "Phishing attempt" \
  --dry-run --verbose

πŸ“‹ Categories (IDs 1-23)

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

πŸ” Security

βœ… Your Data is Safe:

  • API keys stored locally in .env file only
  • Never hardcoded in source code
  • HTTPS-only API communication
  • Never exposed in error messages

πŸ“‚ Project Structure

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

βš™οΈ Technical Stack

  • 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


πŸ› Error Handling

Gracefully handles:

  • βœ… Invalid IP addresses (IPv4/IPv6)
  • βœ… Invalid categories
  • βœ… Missing/wrong API key
  • βœ… Network timeouts
  • βœ… API rate limiting
  • βœ… Server errors
  • βœ… Authentication failures

🀝 Contributing

Want to help? We'd love it!

  1. Fork the repo
  2. Create feature branch: git checkout -b feature/YourFeature
  3. Commit: git commit -m 'Add YourFeature'
  4. Push: git push origin feature/YourFeature
  5. Open a Pull Request

πŸ“„ License

MIT License - Use freely for reporting abuse and improving security!

See LICENSE file for details.


πŸ™ Thanks

  • AbuseIPDB - Powerful abuse database API
  • PyQt6 - Beautiful GUI framework
  • Python Community - Excellent libraries

🎯 Quick Links

πŸ“₯ Download v2.0.0 β€’ πŸ“– Setup Guide β€’ ✨ What's New β€’ πŸ› Issues

Made with ❀️ for cybersecurity professionals

Make the internet safer, one report at a time. πŸ›‘οΈ

About

A powerful command-line interface for reporting malicious IP addresses to AbuseIPDB without leaving your terminal. Features an elegant interactive menu, bulk reporting capabilities, and comprehensive validation.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages