Enter a domain or IP address
Look up who a domain is registered through, when it was created and when it expires, its status locks, nameservers and DNSSEC flag. The tool uses RDAP, the structured successor to WHOIS, and falls back to classic WHOIS on port 43 for country-code domains that have not adopted it. IP addresses return the network block and the organization it is allocated to.
Enter a domain or IP address
Since 2018 almost every registry redacts the owner's name, address and email. What remains is still useful: the registrar tells you where to send an abuse or transfer request, the expiry date tells you whether the domain might drop, the status codes tell you whether it is locked, on hold or pending delete, and the nameservers tell you who hosts its DNS.
WHOIS is a 1982 text protocol with no standard format, so every registry prints fields differently. RDAP returns the same JSON shape everywhere and is mandatory for .com, .net, .org and every other generic TLD. The source line in the result says which one answered, and Raw response shows exactly what came back.
# Classic WHOIS over port 43 (installed on macOS and most Linux)
whois example.com
# RDAP, the JSON replacement: rdap.org redirects to the right registry
curl -sL https://rdap.org/domain/example.com | jq '.events, .status'
curl -sL https://rdap.org/ip/8.8.8.8 | jq '.name, .startAddress, .endAddress' async function rdap(domain) {
const res = await fetch("https://rdap.org/domain/" + domain, {
headers: { accept: "application/rdap+json" },
});
if (res.status === 404) return { registered: false };
const d = await res.json();
const event = (action) => d.events?.find((e) => e.eventAction === action)?.eventDate;
const registrar = d.entities?.find((e) => e.roles?.includes("registrar"));
return {
registered: true,
registrar: registrar?.vcardArray?.[1]?.find((f) => f[0] === "fn")?.[3],
created: event("registration"),
expires: event("expiration"),
status: d.status,
nameservers: d.nameservers?.map((n) => n.ldhName),
};
}
console.log(await rdap("example.com")); rdap.org is a public redirector. For production use, read IANA's bootstrap file at https://data.iana.org/rdap/dns.json and call the registry directly.
import whois # pip install python-whois
w = whois.whois("example.com")
print(w.registrar)
print(w.creation_date, w.expiration_date)
print(w.name_servers)
print(w.status) The library parses port 43 text, so field names vary by registry. For gTLDs prefer RDAP, which returns the same JSON shape everywhere.
This tool follows the specifications below. Read them when you need the exact normative wording, for example to settle an edge case between two implementations.
Who the domain is registered through (the registrar), when it was created, last updated and will expire, its status codes, its nameservers and whether DNSSEC is enabled. For an IP address it shows the network block, the organization it is allocated to and the regional registry.
Since GDPR in 2018, registries and registrars redact personal contact data for almost every domain. You typically get the registrar, dates and nameservers, and an abuse email for the registrar. To reach an owner, use the registrar's contact form or the abuse address.
RDAP is the JSON replacement for the old WHOIS text protocol, required for every generic TLD since 2019. The tool uses RDAP first because the fields are structured and consistent. For country-code TLDs that have not adopted it, the tool falls back to classic WHOIS over port 43 and parses the text.
They are EPP status codes set by the registrar or registry. clientTransferProhibited means transfers are locked, which is normal and protects against hijacking. clientHold or serverHold means the domain is not resolving. pendingDelete means it is about to drop. redemptionPeriod means it expired and can still be restored for a fee.
Roughly. After the expiry date most registrars allow a grace period of up to 45 days, then a 30-day redemption period, then about five days of pending delete. A domain can drop two to three months after its expiry date, and backorder services often catch it first.
Check whether the nameservers listed here are what resolvers see with the DNS propagation checker, inspect the site's TLS certificate with the certificate decoder, or find your own address with what is my IP.