How Do I Check If My Device Has IPv6 Connectivity?

Checking whether your device supports and has active IPv6 connectivity is essential as the internet transitions from IPv4 to IPv6. This comprehensive guide covers platform-specific methods, command-line tools, GUI approaches, and browser-based testing to verify your IPv6 status across all major operating systems.

Table of Contents


Quick Answer: Browser-Based Testing

The fastest and most comprehensive way to check IPv6 connectivity is to visit test-ipv6.run - a pure frontend testing tool that runs six parallel connectivity tests directly in your browser:

The site provides instant results with detailed explanations, works on any device with a web browser, and requires no installation or technical knowledge. It's the recommended first step before diving into platform-specific commands.


Windows Methods

Command-Line Approach

1. Check Your IPv6 Address

Open PowerShell or Command Prompt and type:

ipconfig

Look for entries labeled "IPv6 Address" under your active network adapter. You'll see output similar to:

Ethernet adapter Ethernet:
   Connection-specific DNS Suffix  . : home
   IPv6 Address. . . . . . . . . . . : 2001:0db8:85a3::8a2e:0370:7334
   Link-local IPv6 Address . . . . . : fe80::1ff:fe23:4567:890a%12
   IPv4 Address. . . . . . . . . . . : 192.168.1.100

2. Test IPv6 Connectivity

Test connectivity to a known IPv6 host:

ping -6 ipv6.google.com

Or ping Google's public IPv6 DNS server:

ping -6 2001:4860:4860::8888

If you receive replies, your IPv6 connectivity is working.

3. Trace IPv6 Route

To see the path IPv6 packets take:

tracert -6 ipv6.google.com

GUI Method (Windows Settings)

  1. Open Settings > Network & Internet
  2. Click on your active connection (Wi-Fi or Ethernet)
  3. Scroll down to Properties
  4. Look for "IPv6 address" and "IPv6 DNS servers"

Screenshot description: The Windows Network Properties window displays both IPv4 and IPv6 addresses in a list format, with IPv6 addresses showing the full hexadecimal notation.


macOS Methods

Command-Line Approach

1. Display IPv6 Addresses

Open Terminal and use:

ifconfig

For a cleaner IPv6-only view:

ifconfig -a | grep inet6

Example output:

inet6 fe80::1c7f:42a:d55e:91c7%en0 prefixlen 64 secured scopeid 0x6
inet6 2001:0db8:85a3::8a2e:0370:7334 prefixlen 64 autoconf secured

2. Check All Network Services for IPv6

networksetup -listallnetworkservices | while read ns; do networksetup -getinfo "${ns}" | grep IPv6; done

3. Test IPv6 Connectivity

ping6 ipv6.google.com

Or test with a specific interface:

ping6 -c 4 -I en0 2001:4860:4860::8888

GUI Method (System Preferences)

  1. Open System Preferences > Network
  2. Select your active connection (Wi-Fi or Ethernet)
  3. Click Advanced > TCP/IP tab
  4. Check the "IPv6 Address" field

Screenshot description: The macOS Network preferences panel shows IPv6 configuration with options like "Automatically" or "Manually" and displays the current IPv6 address if configured.


Linux Methods

Command-Line Approach

1. Display IPv6 Addresses (Modern Method)

ip -6 addr

Or show only global IPv6 addresses:

ip -6 addr show scope global

2. Display IPv6 Addresses (Traditional Method)

ifconfig

3. Check If IPv6 Is Enabled

Check the kernel parameter:

sysctl net.ipv6.conf.all.disable_ipv6

If the output is net.ipv6.conf.all.disable_ipv6 = 0, then IPv6 is enabled. If it's = 1, then IPv6 is disabled.

Alternative file-based check:

cat /sys/module/ipv6/parameters/disable

An output of 0 means enabled, 1 means disabled.

4. Test IPv6 Connectivity

ping6 -c 4 ipv6.google.com

Or with a specific interface:

ping6 -c 4 -I eth0 2001:4860:4860::8888

5. View IPv6 Routing Table

ip -6 route show

GUI Method (NetworkManager)

  1. Open Settings > Network (or use nm-connection-editor)
  2. Select your connection and click the gear icon
  3. Go to the IPv6 tab
  4. Check the method (Automatic, Manual, Link-Local Only, Disabled)
  5. View the current IPv6 address if configured

Mobile Devices (iOS and Android)

iOS (iPhone/iPad)

Important Note: iOS does not display IPv6 addresses in the standard Settings interface by default. However, iOS devices automatically support IPv6 when your carrier and network provide it.

Checking IPv6 on iOS:

  1. Browser-Based Testing (Recommended):

    • Open Safari and visit test-ipv6.run
    • The site will instantly show your IPv6 status and address if available
  2. Third-Party Apps:

    • Install "HE.NET Network Tools" (Hurricane Electric's free app)
    • The app displays detailed network information including IPv6 addresses
    • Available on the App Store
  3. Developer Method:

    • If you're a developer, enable Developer Mode
    • Use debugging tools to inspect network interfaces

Important: Since June 2016, all iOS apps submitted to the App Store must support IPv6-only networking, ensuring broad IPv6 compatibility across the iOS ecosystem.

Android

Checking IPv6 on Android:

  1. Browser-Based Testing (Recommended):

    • Open Chrome or your browser and visit test-ipv6.run
    • Instant results showing IPv6 connectivity and address
  2. Settings Method (Varies by Device):

    • Open Settings > About Phone > Status
    • Some Android versions show "IP address" which may include IPv6
    • Note: This varies significantly between manufacturers
  3. Third-Party Apps:

    • Install "HE.NET Network Tools" from Google Play
    • Apps like "Network Info II" also display IPv6 information
  4. Developer Method:

    • Enable Developer Options
    • Some ROMs show detailed network info in developer settings

Note: IPv6 availability on mobile networks depends heavily on your carrier. Major carriers like T-Mobile, AT&T, and Verizon in the US provide IPv6, but coverage varies globally.


Understanding IPv6 Addresses

When you check for IPv6, you'll typically see two types of addresses. Understanding the difference is crucial:

What it means: If you only see a link-local address, your device has IPv6 enabled at the interface level, but you likely don't have internet-routable IPv6 connectivity. This is similar to an IPv4 address in the 169.254.0.0/16 range.

What it means: If you have a global unicast address, your device can potentially communicate over IPv6 with other IPv6 hosts on the internet (assuming your ISP and network support it).

Other Address Types You Might See


Testing Actual Connectivity vs Configuration

Critical Distinction: Having an IPv6 address configured does NOT guarantee working IPv6 connectivity.

Configuration Only

You might have an IPv6 address assigned, but:

Actual Connectivity Testing

This is why browser-based testing is essential. Tools like test-ipv6.run perform real-world connectivity tests by:

  1. Making actual HTTP requests to IPv6-only servers
  2. Testing dual-stack behavior (sites with both IPv4 and IPv6)
  3. Measuring latency to assess IPv6 performance
  4. Detecting protocol preference (which protocol your browser prefers)
  5. Identifying broken IPv6 (configured but timing out - the worst scenario)

Command-Line Connectivity Tests

Beyond checking addresses, test actual reachability:

Windows/Linux/Mac:

# Test Google's IPv6 DNS
ping6 2001:4860:4860::8888

# Test IPv6-enabled website
ping6 ipv6.google.com

# Test DNS resolution for IPv6 (AAAA records)
nslookup -type=AAAA google.com

Expected behavior:


Troubleshooting Missing IPv6

Why Don't I Have IPv6?

1. ISP Doesn't Provide IPv6

The most common reason. Many ISPs worldwide still haven't deployed IPv6 to residential customers.

Check: Contact your ISP or search "[Your ISP Name] IPv6 support"

2. Router Doesn't Support IPv6

Older routers may not support IPv6 or have it disabled by default.

Fix:

3. IPv6 Disabled in Operating System

Windows - Re-enable IPv6:

netsh interface ipv6 set global randomizeidentifiers=enabled

Or through GUI:

  1. Control Panel > Network and Sharing Center
  2. Change adapter settings
  3. Right-click adapter > Properties
  4. Ensure "Internet Protocol Version 6 (TCP/IPv6)" is checked

Linux - Re-enable IPv6:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0

Make permanent by editing /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0

4. Firewall Blocking IPv6

Windows - Check Windows Firewall:

netsh advfirewall show allprofiles

Temporarily disable to test:

netsh advfirewall set allprofiles state off

Linux - Check iptables/ip6tables:

sudo ip6tables -L -v

5. Network Drivers Outdated

Update network adapter drivers through Device Manager (Windows) or your package manager (Linux).

6. IPv6 Helper Service Issues (Windows)

The IP Helper service might need resetting:

netsh winsock reset
netsh int ip reset

Restart your computer after running these commands.

Fixing "IPv6 No Network Access" Error

This error on Windows indicates IPv6 is configured but can't reach the internet:

Solutions:

  1. Reset Network Settings:

    netsh winsock reset
    netsh int ip reset
    ipconfig /flushdns
    
  2. Disable and Re-enable IPv6:

    • Network adapter properties > Uncheck IPv6 > Apply > Check IPv6 > Apply
  3. Run Windows Network Troubleshooter:

    • Settings > Network & Internet > Status > Network troubleshooter
  4. Update Network Adapter Drivers

  5. Check Router Configuration:

    • Ensure router has IPv6 enabled
    • Verify DHCPv6 or SLAAC is working
    • Check if router has obtained an IPv6 prefix from ISP

When IPv6 Should Be Disabled

In rare cases, "broken IPv6" (configured but not working) can slow down web browsing because browsers attempt IPv6 connections that timeout before falling back to IPv4. If you cannot fix IPv6 connectivity and experience slowness, temporarily disabling it may help until your ISP or network properly supports it.

However, we strongly recommend properly configuring IPv6 rather than disabling it, as IPv6 is the future of internet addressing.


Comprehensive Testing Recommendation

For the most thorough IPv6 connectivity verification:

  1. Visit test-ipv6.run - Runs 6 parallel tests and provides a readiness score
  2. Check your address configuration using platform-specific commands above
  3. Verify actual connectivity with ping6/ping -6 to known IPv6 hosts
  4. Test DNS resolution with nslookup for AAAA records
  5. Review your score and diagnostics from test-ipv6.run to identify issues

The test-ipv6.run tool is particularly valuable because it:


Summary

Checking IPv6 connectivity involves multiple layers:

  1. Configuration check - Do you have an IPv6 address assigned?
  2. Connectivity test - Can you reach IPv6 hosts on the internet?
  3. Dual-stack behavior - How does your system handle sites with both IPv4 and IPv6?

For most users, visiting test-ipv6.run provides instant, comprehensive answers. For advanced troubleshooting and detailed system information, use the platform-specific command-line tools outlined in this guide.

As the internet continues its transition to IPv6, having working IPv6 connectivity ensures you're ready for the future of internet addressing and can take advantage of IPv6's benefits: a virtually unlimited address space, improved routing efficiency, and better end-to-end connectivity.