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.
- 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
digis 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, optionalnmap, 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
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.
- Python 3.11+
- Optional:
digfor detailed DNS records - Optional:
arp-scanornmapfor stronger LAN discovery - Optional: system
whoisfor some registry fallbacks
Python dependencies are declared in pyproject.toml:
phonenumbersmac-vendor-lookup
From a local checkout:
python3 -m pip install -e .Run without installing:
python3 -m ip_multitool lookup 8.8.8.8Start the full-screen terminal UI:
ipmtor explicitly:
ipmt tuiUseful keys:
Up/Downorj/kto select a toolEnterto run the selected toolPgUp/PgDnto scroll long resultsqorEscto quit
If curses is not available or the terminal is unsuitable, ipmt tui falls back to a simple line-based menu.
Lookup an IP or domain:
ipmt lookup 1.1.1.1
ipmt lookup example.com
ipmt lookup https://example.com/path --jsonCheck privacy/network indicators:
ipmt vpn 8.8.8.8
ipmt privacy https://example.com/path --jsonInspect DNS and registration data:
ipmt dns example.com
ipmt whois example.com
ipmt whois 8.8.8.8Check an HTTP endpoint:
ipmt http example.com
ipmt http https://example.com --method GET --jsonCalculate a subnet:
ipmt subnet 192.168.1.42/24
ipmt subnet 2001:db8::/64 --jsonParse a phone number:
ipmt phone +436641234567
ipmt phone 06641234567 --region AT --jsonDiscover local devices:
ipmt lan
ipmt lan --ports web
ipmt lan --network 192.168.1.0/24Capture browser headers from a device that opens the displayed URL:
ipmt headers
ipmt headers --port 8088 --timeout 120Run an authorized port check:
ipmt scan scanme.nmap.org --ports top --banner
ipmt scan 192.168.1.10 --ports admin- 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
digfor DNS records - Google's libphonenumber metadata through
phonenumbers - Local ARP table, optional
arp-scan, optionalnmap, reverse DNS, and IEEE OUI metadata for LAN discovery
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 --helpMIT