(Note: As of June 15, 2022, the Internet Explorer (IE) 11 desktop application is no longer supported on certain versions of Windows 10, any version of Windows 11, or on later versions, as explained by this article. That article also describes ways to enable Internet Explorer mode in any version of Edge.)
To be certain that the IPv6 protocol will be used to access the website, substitute an IPv6 literal address surrounded by square brackets in the uniform resource identifier (URI) in place of a domain name.
For example,
http://ipv6.test-ipv6.com
becomes
http://[2001:470:1:18::115].
For additional information, refer to Request For Comments (RFC) 3986 "Uniform Resource Identifier (URI): Generic Syntax".
(Caution: This substitution can sometimes fail. Explanation of possible reasons for this are available. If you encounter problems, review the Broken User FAQ article found on that website for several possible explanations. For even more possible explanations, review this article on the ARIN IPv6 wiki.)
If it is necessary to specify a port number as part of the URL, it would follow the IPv6 literal address (as is the case with IPv4 addresses).
For example, http://ipv6.test-ipv6.com:443 becomes http://[2001:470:1:18::115]:443.
Extensions: IPvFoo is one of several extensions that are now available for Edge and Explorer on the Chrome Web Store. After you install (and then enable) the iPvFoo extension, some combination of 4, 6, and/or "?" will appear near the three dots (...) in the upper-right corner of your browser window. Clicking on it will cause the IP address(es) of the web page you are viewing to appear. Adding an extension to Microsoft Edge or Explorer from the Chrome Web Store is described in this article.
Note 1: Neither Edge nor IE can browse IPv6 websites if configured to use a proxy server that does not support IPv6. When Edge or IE is configured to use a proxy server, name resolution requests for websites are forwarded to the proxy server. Unless the proxy server is IPv6-enabled, proxy-based requests for local or remote IPv6 web pages will not work.
To disable use of a proxy server:
1a. Windows 11: Tap or click the Start icon at the bottom of the screen. Enter Internet Options in the Search Bar window at the top of the screen. Tap or click on the Internet Options icon that appears.
1b. Windows 10 and earlier versions: Enter Internet Options in the Search Bar window in the lower left-hand corner of the screen. Tap or click on the Internet Options icon that appears.
2. An Internet Properties dialog box will appear. Tap or click the Connections tab, then tap or click LAN Settings.
3. In the Local Area Network (LAN) Settings dialog box, clear the Use a proxy server for your LAN checkbox and tap or click OK.
4. Tap or click OK to save changes to Internet Properties dialog box and exit.
Note 2: If for some reason you need to use a Universal Naming Convention [UNC] path name that must include an IPv6 literal address to test access to a web page on a shared folder, be forewarned that the colon is an illegal character in a UNC path name. For just this reason, Microsoft has implemented a transcription algorithm that uses a second-level Internet domain, ipv6-literal.net. (The ipv6-literal.net domain is registered to Perfect Privacy, LLC, but don't let that hinder you.) IPv6 addresses may be transcribed by substituting a dash for each colon, substituting the letter “s” for each percent sign, appending a period and the ipv6-literal.net domain, as follows:
2001:0db8:85a3:08d3:1319:8a2e:0370:7348
would be written as
2001-db8-85a3-8d3-1319-8a2e-370-7348.ipv6-literal.net
and the resulting URI will then be directly resolved by Microsoft software without DNS queries to any nameservers. When a zone index is part of a link local IPv6 address, transcribe the address in a similar fashion as follows:
fe80::3%1
would be written as
fe80--3s1.ipv6-literal.net.
Note 3: Access to web pages on UNC path name-specified shared folders with an included IPv6 or IPv4 literal address is typically prohibited by Edge and most versions of IE unless the shared folder is explicitly added to the Trusted sites zone under the Security tab in the Internet Properties dialog box. (The Trusted sites zone will only be shown if you have administrator privileges.)
There is no way to disable IPv6 in Opera. To use Opera without IPv6, it is necessary to turn off IPv6 at the operating system level (which is typical browser behavior).
Opera preferred IPv6 unconditionally over IPv4 until March, 2010, when Opera started using the operating system's instead of its own built-in resolver library.
To be certain that the IPv6 protocol is being used to access a website, substitute an IPv6 literal address surrounded by square brackets in place of a domain name:
http://ipv6.test-ipv6.com
becomes
http://[2001:470:1:18::115].
For additional information, refer to Request For Comments (RFC) 3986 “Uniform Resource Identifier (URI): Generic Syntax".
(Caution: This substitution can sometimes fail. Explanations of possible reasons for this are available. If you encounter problems, review the Broken User FAQ article found on that website for several possible explanations. For even more possible explanations, review this article on the ARIN IPv6 wiki.)
Extensions: IPvFoo is one of several extensions now available for Opera on the Chrome Web Store. After you install the iPvFoo extension, some combination of 4, 6, and/or "?" will appear at the top of the screen near the menu button (
). Clicking on it will cause the IP address(es) of the web page you are viewing to appear. Adding an extension to Opera from the Chrome Web Store is documented in this article.
By default, Chrome uses Internet Protocol version 6 (IPv6) if the underlying operating system supports it. There is no way to configure Chrome to turn off IPv6 (or IPv4, for that matter). To use Chrome without IPv6, it is necessary to turn off IPv6 at the operating system level (which is typical browser behavior).
To be certain that the IPv6 protocol is being used to access the website, substitute an IPv6 literal address surrounded by square brackets in place of a domain name. For example,
http://ipv6.test-ipv6.com
becomes
http://[2001:470:1:18::115].
For additional information, refer to Request For Comments (RFC) 3986 “Uniform Resource Identifier (URI): Generic Syntax".
(Caution: This substitution can sometimes fail. Explanation of possible reasons for this are available. If you encounter problems, review the Broken User FAQ article found on that website for several possible explanations. For even more possible explanations, review this article on the ARIN IPv6 wiki.)
The Chrome browser is still evolving. It used to be possible in early versions of Chrome to temporarily force Chrome to use or to inhibit the use of IPv6 for testing purposes. The --enable-ipv6 and --disable-ipv6 command line switches were documented here, and documentation for running Chrome using such command line switches is still available here. It is possible that these switches may again be supported by future versions of Chrome. Refer to current documentation for the supported command line switches.
Another feature of the Chrome browser for testing network access to websites is the special URI
chrome://net-internals
which can be used to dump a view of the network stack’s internal state. Details of its use are documented here. Early versions of Chrome had a Tests tab in that URI, and it may again be supported by future versions of Chrome. Caution: Some versions of Chrome may be unstable when using features of this special URI.
Extensions: IPvFoo is one of several extensions that are available for Chrome. After you install iPvFoo, some combination of 4, 6 and/or "?" will appear at the top of the screen near the menu button (
). Clicking on it will cause the IP address(es) of the web page you are viewing to appear. Chrome has several other extensions specific to IPv6. To install iPvFoo, go to the Chrome Web Store, enter "iPvFoo" (without the quotes) in the Search the store box, press the Return key, click on IPvFoo, and finally, click on Add to Chrome.
The IPv6 Application Conversion Tools document provides information about:
1. conversion tools, utility software, and links to books, articles, and presentations on developing or converting programs written in languages including C/C++, Java, Python, Perl, and PHP that currently support only Internet Protocol version 4 (IPv4) to support both dual-stack (IPv4 and IPv6) or IPv6-only.
2. websites containing supplemental information.
3. tools such as the Hewlett-Packard (HP) ipv6sniff porting assistant, Microsoft Checkv4, Sun IPv6 Socket Scrubber, and later open source tools such as IPv6 CARE, IPv6finder, and PortToIPv6 Framework.
Some of the older tools and software may no longer be available from the original developers. Archival copies may be available from this IPv6 Knowledge Base administrator. Please contact ipv6-team [at] dren.mil.
The article Top 10 Tasks for IPv6 Application Developers provides a concise overview of concerns when developing new applications that will support or enabling existing applications to support both a network infrastructure where only Internet Protocol version 4 (IPv4) is present and a network infrastructure where IPv4 and IPv6 are both present (dual-stack). Section 8 of that article describes IPv6 support in the Run Time Libraries (RTL) of various languages. That article was written over 10 years ago.
Since 2020, applications being developed no longer need to support dual-stack network infrastructures, The Internet Engineering Task Force (IETF) issued Request for Comments (RFC) 8925 IPv6-Only Preferred Option for DHCPv4, which enables IPv4-only and dual-stack nodes on a local-area network to continue to be supported while all new and updated nodes on the network will be IPv6-only (sometimes referred to as IPv6-mostly access), making The Need for IPv6-only Product Support even more important.
The article Designing and Testing IPv6-enabled Networking Software provides a broad overview of concerns when developing applications, while this presentation Application Development for IPv6 considers some more technical aspects. The more recent How Software Engineers Can Make Their Apps IPv6 Ready article and Preparing Apps for IPv6 (presentation and paper) provide details for several of those concerns. This Department of Veterans Affairs IPv6 Applications Testing Best Practices document includes a section with best practices for developing applications, plus another section with best practices for testing them. In contrast to IPv4, applications that generate IPv6 packets larger than the default path Maximum Transmission Unit (MTU) configured for the local network must use raw sockets rather than the sockets supported by the RTL of various languages, as described in this article.
This guide provides additional information for application developers. Tips on writing applications to run on multiple operating systems are offered by this Cross-Platform IPv6 Socket Programming article, while this IPv6 Guide for Windows Sockets Applications article offers tips on developing applications to run on Microsoft Windows operating systems.
The Application Conversion Tools article under the Applications section identifies conversion tools, utility software, and provides links to additional books, articles, and presentations on developing or enabling an application written in C/C++, Java, Python, Perl, or PHP to support both dual-stack and IPv6-only networking infrastructures and then testing the application. The IPv6, Samba, and CIFS article under the Infrastructure section describes the use of one such tool in enabling applications to support both IPv4 and IPv6. The IPv6 and PHP article under the Infrastructure section provides additional references for enabling PHP to support both IPv4 and IPv6.
Several RFCs published by the IETF describe the structure and use of sockets in applications that support IPv6:
RFC 3493 Basic Socket Interface Extensions for IPv6
RFC 3542 Advanced Sockets Application Program Interface (API) for IPv6
RFC 4038 Application Aspects of IPv6 Transition
RFC 4584 Extension to Sockets API for Mobile IPv6
RFC 5014 IPv6 Socket API for Source Address Selection,
and this RFC describes the requirement for IPv6 support in both new and existing hardware and applications:
RFC 6540 IPv6 Support Required for All IPv6-Capable Nodes.
