4 ms·
Here's a question, I know next to nothing about IPv6, but I imagine a big part of the problem is migration of IPv4 (of course). So, for new projects.. I don't h
by notheguyouthink 9y ago
Here's a question, I know next to nothing about IPv6, but I imagine a big part of the problem is migration of IPv4 (of course). So, for new projects.. I don't have this issue, right? What are my options to implement proper IPv6 support for my new apps right from the start?
- zAy0LfpBZLC8mAC 9y agoIf you have to ask: Nothing, that is handled at lower layers. Except you might want to actually configure IPv6 on any backend servers you run and add IPv6 DNS records so that your client software can actually use IPv6.
- stepik777 9y agoOff the top of my head: * If you store IP addresses ensure that you can store IPv6 address if necessary. * Rent servers only from IPv6 capable providers. * When configuring DNS don't forget AAAA records. * If you ban users by IP you might need to ban entire IPv6 subnets.
- bluGill 9y agoThat depends. If you write your code using a high level abstraction you don't have to do anything, it should just work. High level could be as high as an http module (python), or as low as a wrapper (boost::ASIO). Odds are very good your language has one or more. In general this is the way to go choose something that handles the details for you in a language correct way. If you write low level sockets you at least need to be aware of both when you connect the sockets. The easiest is a server as you just need to listen for connections on two sockets. When connecting you should be aware of cases where it seems like either protocol will work, but in fact one is broken (generally this means the local machine supports ipv6 but the network is not connected - it is common to ignore this, but you will get support requests because of it unless you implement a try both scheme). Either way once communication is established there is no real difference in the code. The above is the common case. If you need to do more than communicate it can get complex quickly. In general I wouldn't use raw sockets unless you actually need to do something complex enough that no existing wrapper will work for you (performance alone is reason to use raw sockets if you have profile data to prove it). However since I don't know your domain I cannot suggest how complex your code will need to be to support both.
- Jack5500 9y agoIt really depends. I just started on a software project that use enet as a network library as an integral part of the project. Sadly enet doesnt support ipv6, but there is really not much I can do about it since its embedded and as such on a way lower level than the project itself. So it really depends on the core your software is built on is what I'm trying to say
- BenjiWiebe 9y agoFor server software on *nix, listening to port "::" will get connections from both IPv6 and IPv4.