Skip to content

applesauce777/WhoDat

Repository files navigation

🦉 WhoDat - IP Geolocation Resolver

Python Flask License Ko-Fi

Find out who that IP belongs to! 🦉
An IP geolocation tool that answers the question "Who dat IP?" using MaxMind's GeoLite2 databases. Great for network analysis, security investigations, and geographic data visualization.

✨ Features

  • 📁 Smart File Upload - Supports TXT, CSV, Excel, TSV files with automatic IP column detection
  • 🔄 One-Click Database Updates - Built-in MaxMind database management
  • 📊 Real-time Progress Tracking - Live progress bars
  • 🔍 Searchable Results - Interactive table with filtering and search capabilities
  • 💾 Export Options - Download results as SQLite database
  • Batch Processing - Efficient handling of large IP lists
  • 🛡️ IP Validation - Automatic filtering of invalid IP addresses
  • 🌍 Geographic Data - ISP, city, region, country, lat/long information

🚀 Quick Start

Zero-Config Installation

# Clone the repository
git clone https://github.com/applesauce777/WhoDat.git
cd WhoDat

# Run the installer (cross-platform)
python install_who_dat.py

# Launch the web interface
python launcher.py

Manual Setup

  1. Install dependencies:
pip install -r requirements.txt
  1. Configure MaxMind license key:
# Edit config.py
LICENSE_KEY = "your_free_license_key_from_maxmind"
  1. Download databases:
python mmupdate.py
  1. Start the web app:
python app.py
# Visit http://localhost:5001

📖 Usage

Web Interface (Recommended)

The WhoDat web interface provides:

  • 📁 Drag-and-drop file upload with preview functionality
  • 🔄 Database update button with progress tracking
  • 📊 Real-time processing with animated owl states
  • 🔍 Searchable results table with filtering
  • 💾 One-click download of processed data

Command Line Interface

# Basic usage
python resolve.py ips.txt output.db

# Advanced usage with custom batch size
python resolve.py ips.txt output.db --batch-size 500

# Process multiple formats
python resolve.py data.csv output.db
python resolve.py data.xlsx output.db

📊 Output Format

Results are stored in SQLite with the following schema:

Column Type Description
ip TEXT IP address (primary key)
isp TEXT Internet Service Provider
city TEXT City name
region TEXT State/province/region
country TEXT Country name
latitude REAL Geographic latitude
longitude REAL Geographic longitude

🛠️ Development

Project Structure

WhoDat/
├── app.py              # Flask web application
├── resolve.py          # CLI interface
├── mmupdate.py         # Database updater
├── config.py           # Configuration
├── file_parser.py      # Multi-format file handler
├── launcher.py         # User-friendly launcher
├── install_who_dat.py # Cross-platform installer
├── requirements.txt    # Dependencies
├── templates/          # HTML templates
├── static/            # Static assets (owl logo)
└── icons/             # Application icons

📋 Requirements

  • Python 3.6+
  • MaxMind License Key (free from maxmind.com)
  • Internet Connection (for database updates)

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⭐ Support

  • Buy Me a Coffee: Ko-Fi

🙏 Acknowledgments

  • MaxMind - GeoLite2 databases for accurate geolocation
  • Flask - Web framework

🦉 WhoDat? Find out who that IP belongs to! 🦉

About

An IP geolocation tool that answers "Who dat?" using MaxMind's GeoLite2 databases. Great for network analysis, security investigations, and geographic data visualization.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors