Skip to content
By TrueProxies5 min read

How to check if a website supports IPv6

A website supports IPv6 when its hostname publishes an AAAA record and its server answers on that address. Look up the record with dig or nslookup, confirm a real connection with curl -6, then test every host the page loads, because one IPv4-only script, font or API can break the page over IPv6.

What does IPv6 support mean for a website?

IPv6 support is not a yes-or-no answer. A site can be unreachable over IPv6, reachable for its main page only, or fully usable because every host it depends on has IPv6.

LevelWhat it meansWhat an IPv6-only client sees
No IPv6The hostname publishes no AAAA recordThe connection cannot be opened at all
PartialThe main hostname has an AAAA record, but a script, stylesheet, font, image or API host does notThe HTML loads; some resources fail or never arrive
FullThe main hostname and every host the page loads publish AAAA recordsThe page can load completely over IPv6

Measurements show why the middle level matters. Common Crawl's March 2026 analysis found 36.9% of the top 100,000 web hosts fully reachable over IPv6 and 61.9% with no AAAA record. Research presented at IMC 2025 found only 12.6% of the top 100,000 websites fully IPv6-ready once every subresource is counted.

How do you look up a website's AAAA record?

An AAAA record maps a hostname to an IPv6 address, as defined in RFC 3596. Query it with dig on macOS and Linux, nslookup on almost any system, or Resolve-DnsName in Windows PowerShell.

Look up the IPv6 (AAAA) and IPv4 (A) recordsbash
# macOS and Linux
dig AAAA example.com +short
dig A example.com +short

# Almost any system
nslookup -type=AAAA example.com

# Windows PowerShell
Resolve-DnsName example.com -Type AAAA

An IPv6 address in the output (it looks like 2001:db8::1) means the hostname publishes IPv6. Empty output from dig AAAA, or no AAAA answer from nslookup, means it does not. If the answer starts with a CNAME, the resolver follows it, and the address at the end of the chain is the one that counts.

Check the exact hostname your tool requests. example.com, www.example.com and api.example.com are separate DNS names, and their answers can differ.

How do you confirm a real IPv6 connection with curl?

A record proves that an address is published, not that the server answers on it. curl -6 makes curl connect over IPv6 only (see the curl manual).

Test the connection over IPv6bash
# Force IPv6 and print the HTTP status and the address curl connected to
curl -6 -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://example.com/

A status code followed by an IPv6 address means the site answered over IPv6. This test needs IPv6 on the machine that runs it. If your network has none, curl fails whatever the site supports, so use one of the checks below instead.

If you have a Datacenter IPv6 service, the proxy gives the same answer from an IPv6 exit, and your own machine does not need IPv6:

Test the site through a Datacenter IPv6 servicebash
curl -sS -o /dev/null -w 'proxy %{http_connect}, site %{http_code}\n' \
  -x http://YOUR_HOST:8080 -U "YOUR_USERNAME:YOUR_PASSWORD" \
  https://example.com/

proxy 200 followed by a site status means the site answered over IPv6. An IPv4-only site gets proxy 502, and the X-Proxy-Reason header says why: “Datacenter IPv6 proxies reach IPv6 destinations only. This destination has no IPv6 address.” Add -v to see the header.

How do you check every resource a page loads?

Use the TrueProxies IPv6 test. It loads the page once, collects every host the HTML asks a browser to fetch (scripts, stylesheets, images, iframes, fonts, preconnect hints and CSS url() references), and resolves AAAA and A records for each one over DNS-over-HTTPS. It reports Pass, Partial, Fail or Inconclusive and marks each host that is IPv4 only.

Know its limits. It reads the HTML as served, so hosts that JavaScript adds later are not counted. It checks up to 60 unique hosts per page. A site that returns a challenge page is reported as Inconclusive rather than Pass.

On a network that has IPv6, you can also check by hand: open your browser's developer tools, reload the page on the Network tab and show the Remote Address column. IPv6 addresses appear in square brackets. A host shown with an IPv4 address may still have IPv6, so confirm it with dig AAAA.

What does partial IPv6 support mean for your workload?

Partial support is common because third-party hosts, such as CDNs, analytics, font services and APIs, each run their own DNS. Whether it matters depends on what your client fetches.

WorkloadWhat must have IPv6How to check
HTTP client fetching HTML (curl, requests, Scrapy)The page's hostname onlydig AAAA, then curl -6 or a request through Datacenter IPv6
API or JSON endpointThe API hostname, which can differ from the website'sdig AAAA on the API hostname
Headless browser that renders pagesEvery host the page loads, including hosts added by JavaScriptThe IPv6 test, then a rendered test run
Image or file downloadsThe CDN or storage hostname in each file URLdig AAAA on each file hostname

What should you do if a website is IPv4-only?

  • Use IPv4 for that site. Residential IPv4 Unlimited and Residential IPv4 GB-based reach IPv4 sites.
  • Split traffic by target: send hosts that pass through Datacenter IPv6 and IPv4-only hosts through Residential IPv4, and build the list with the checks above.
  • For a partial site you render in a browser, find out whether the IPv4-only hosts carry anything you need. A missing analytics beacon rarely matters; a missing script that builds the page does.
  • Check again later. Sites add IPv6 over time, and a result is only true for the day you checked.

Don't buy IPv6 capacity for a site whose main hostname has no AAAA record. No amount of IPv6 changes that.

Checklist: is this site ready for an IPv6 proxy?

  1. List every hostname your client will request: the page, its API, and any file or image hosts.
  2. Run dig AAAA on each one. An empty result is an IPv4-only host.
  3. Confirm one real IPv6 response with curl -6, or through a Datacenter IPv6 service.
  4. If you render pages, run the IPv6 test and review every host marked IPv4 only.
  5. Decide per target: Datacenter IPv6 for hosts that pass, Residential IPv4 for the rest.

For the product side, read what an IPv6 proxy is. Datacenter IPv6 lists current plans.

TrueProxies

Related articles

6 min readSeptember 29, 2026

What is an IPv6 proxy? How it works and when it fits

An IPv6 proxy forwards your requests from an IPv6 address instead of an IPv4 one. Because IPv6 space is so large, a provider can give one customer a whole /48 and a fresh address on every connection. The limit is reach: an IPv6 proxy only works for sites that publish an IPv6 (AAAA) address.

Read article
4 min readSeptember 29, 2026

What is a /48 IPv6 subnet, and why does it matter for proxies?

A /48 is an IPv6 prefix whose first 48 bits are fixed, leaving 80 bits for addresses: 2^80 addresses, or 65,536 /64 subnets. RIPE guidance for network operators recommends one per business customer. On a proxy, a private /48 means every exit address is yours alone, and a site that limits by prefix sees one network.

Read article
10 min readSeptember 29, 2026

Proxy errors explained: 407, 403, 429, 502, timeouts and slow connections

A 407 comes from the proxy: it refused the connection, for example over the password, username or targeting options. A 403 or 429 that arrives after the tunnel opens comes from the website. A 502 or 503 from the proxy means it could not open the connection. On TrueProxies, a 407 usually names its reason in the X-Proxy-Reason header.

Read article

Ready to compare current options?

Try 1 hour of Residential IPv4 Unlimited at 10 Mbps, free. No card required.