Skip to content

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

License

Notifications You must be signed in to change notification settings

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 with animated owl states
  • 🔍 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

Watchers

Forks

Packages

 
 
 

Contributors