nip.io (wildcard DNS)

nip.io is a free wildcard DNS service that maps any IP address to a hostname on the fly, without configuring anything. Any query for <anything>.<IP>.nip.io resolves to that IP:

10.0.0.1.nip.io        → 10.0.0.1
app.192.168.1.50.nip.io → 192.168.1.50

It works by running an authoritative nameserver that parses the IP out of the queried name and answers with it — so any subdomain depth works. sslip.io is an equivalent alternative service with the same syntax (10.0.0.1.sslip.io).

Note the direction of the trick: this is not reverse DNS in the PTR-record sense. It hands you a forward-resolving hostname for an IP you control — which is exactly what several workflows demand a hostname for.

Why it matters

  • TLS testing without DNS: many tools and certificate flows want a hostname, not an IP. https://10.0.0.1.nip.io gives you a real DNS name pointing at a lab box — services like Let’s Encrypt have historically issued for nip.io/sslip.io names, enabling quick TLS labs.
  • Callback / OOB infrastructure: when a payload or SSRF target needs a hostname (some parsers reject bare IPs or treat them differently), a nip.io name pointing at your listener is a zero-config option.
  • Bypassing naive URL filters: allowlists keyed on “looks like a domain” sometimes pass *.nip.io where a bare IP would be flagged; conversely, defenders should treat wildcard-DNS domains as untrusted infrastructure indicators.
  • Local dev: mapping myapp.127.0.0.1.nip.io lets multiple named vhosts hit a dev box with no /etc/hosts edits.

For actual reverse lookups (IP → PTR record), use dig -x $IP (see dig) or nslookup $IP (see nslookup).

Sources

  • dig — real reverse lookups with -x, and zone-transfer recon
  • nslookup — the Windows-available DNS query tool
  • python-http-server — a quick listener to point those wildcard names at