Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IP Multitool

CI Python License: MIT Ruff

A focused terminal toolkit for IP intelligence, DNS and RDAP lookups, HTTP checks, subnet math, local network discovery, and authorized service checks.

It is built for practical diagnostics: quick answers in an interactive TUI, scriptable JSON output in the CLI, and clear limits around what IP-based tooling can and cannot identify.

Features

  • Full-screen terminal UI with a simple fallback menu for limited terminals
  • IP and domain lookup with geolocation, ISP, organization, ASN, reverse DNS, RDAP, and privacy indicators
  • VPN, proxy, Tor, hosting, datacenter, abuse, and mobile-network checks
  • Domain DNS lookup for A, AAAA, MX, NS, TXT, and CNAME records when dig is available
  • Domain and IP RDAP/WHOIS lookup through IANA bootstrap data with WHOIS fallback for selected TLDs
  • HTTP endpoint check with status, redirect target, DNS resolution, selected headers, latency, and TLS certificate metadata
  • Subnet calculator for CIDR ranges, netmask, broadcast, usable host range, and address scope
  • Phone number parsing and validation through libphonenumber metadata
  • Local network discovery with ARP, optional arp-scan, optional nmap, ping sweep, MAC vendor lookup, hostnames, and optional per-host port checks
  • Browser header capture through a local HTTP listener when a client explicitly opens the shown URL
  • Authorized TCP port checks with optional banner grabbing
  • JSON output for automation

Important Limits

A public IP usually identifies a network edge, ISP, VPN, proxy, hosting provider, or NAT gateway. It does not reliably identify a specific person, browser, household device, or owner.

Browser and device header details are only visible when that device opens the local capture URL. Port checks and LAN scans should only be run against systems and networks you own or are explicitly authorized to test.

Requirements

  • Python 3.11+
  • Optional: dig for detailed DNS records
  • Optional: arp-scan or nmap for stronger LAN discovery
  • Optional: system whois for some registry fallbacks

Python dependencies are declared in pyproject.toml:

  • phonenumbers
  • mac-vendor-lookup

Install

From a local checkout:

python3 -m pip install -e .

Run without installing:

python3 -m ip_multitool lookup 8.8.8.8

Interactive TUI

Start the full-screen terminal UI:

ipmt

or explicitly:

ipmt tui

Useful keys:

  • Up / Down or j / k to select a tool
  • Enter to run the selected tool
  • PgUp / PgDn to scroll long results
  • q or Esc to quit

If curses is not available or the terminal is unsuitable, ipmt tui falls back to a simple line-based menu.

CLI Examples

Lookup an IP or domain:

ipmt lookup 1.1.1.1
ipmt lookup example.com
ipmt lookup https://example.com/path --json

Check privacy/network indicators:

ipmt vpn 8.8.8.8
ipmt privacy https://example.com/path --json

Inspect DNS and registration data:

ipmt dns example.com
ipmt whois example.com
ipmt whois 8.8.8.8

Check an HTTP endpoint:

ipmt http example.com
ipmt http https://example.com --method GET --json

Calculate a subnet:

ipmt subnet 192.168.1.42/24
ipmt subnet 2001:db8::/64 --json

Parse a phone number:

ipmt phone +436641234567
ipmt phone 06641234567 --region AT --json

Discover local devices:

ipmt lan
ipmt lan --ports web
ipmt lan --network 192.168.1.0/24

Capture browser headers from a device that opens the displayed URL:

ipmt headers
ipmt headers --port 8088 --timeout 120

Run an authorized port check:

ipmt scan scanme.nmap.org --ports top --banner
ipmt scan 192.168.1.10 --ports admin

Data Sources

  • IP-API JSON API for geolocation, ISP, ASN, reverse DNS, mobile, proxy, and hosting flags
  • ipapi.is for VPN, proxy, Tor, datacenter, hosting, abuse, ASN, and company indicators
  • IANA RDAP bootstrap data for IP and domain registration lookup
  • Registry RDAP and WHOIS servers where available
  • Local resolver and optional dig for DNS records
  • Google's libphonenumber metadata through phonenumbers
  • Local ARP table, optional arp-scan, optional nmap, reverse DNS, and IEEE OUI metadata for LAN discovery

Development

Install with the development extras (pytest + ruff):

python3 -m pip install -e ".[dev]"

Run the tests and linter:

pytest
ruff check .

Run the CLI from source:

python3 -m ip_multitool --help

License

MIT

About

Focused terminal toolkit for IP intelligence, DNS, RDAP, HTTP checks, subnet math, and authorized network diagnostics.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages