March 8th, 2010 | Published in Google App Engine
The Google over IPv6 program allows ISPs with good connectivity to request IPv6 access for most Google services. In about a week, we'll be adding Google App Engine and the appspot.com domain to this program. This means that all App Engine apps will become accessible over IPv6 to anyone participating in the program!
For most people, this won't require any changes to your code at all. If your App Engine code reads
os.environ["REMOTE_ADDR"] in Python, or
HttpServletRequest.getRemoteAddr() in Java, be aware that this value may be an IPv4 address, like "192.0.2.1", or an IPv6 address, like "2001:db8::1". Now is the time to verify that your code doesn't make any IPv4-specific assumptions, so that your IPv6-ready users will have a seamless transition.
Q: My app doesn't handle IP addresses at all. Can I ignore this announcement?
Q: I have a third-party domain hosted through Google Apps and the ghs.google.com CNAME. Will this affect me?
A: This particular change only affects appspot.com domains, but you should still make sure your code is IPv6-safe, as we're always working to add IPv6 to more services.
Q: Will everyone see an IPv6 AAAA record for my app?
A: No, the AAAA record is visible to less than 1% of users, whose ISPs are participating in the Google over IPv6 program.
Q: Does this mean each app will get its own unique IPv6 address?
A: No, we try to keep our IPv4 and IPv6 services as similar as possible.
Q: My ISP isn't a Google over IPv6 participant. How can I verify that that my code doesn't choke on IPv6 addresses?
A: You should include IPv6 addresses in your unit tests. After the launch, you'll be able to use the IPv4-IPv6 Website Gateway provided by the SixXS project. It's accessed by appending .ipv4.sixxs.org to any IPv6-enabled hostname. For example, the "Shoutout" sample app will be visible at http://shoutout.appspot.com.ipv4.sixxs.org/.
Q: Why does the previous link report a "does not have an IPv6 address" error?
A: That means we haven't launched yet. The delay is meant to give developers time to review their address-handling code.