With the limitations of NAT and carrier-grade NAT, it is perhaps worth mentionning that ipv6 might be an option for a few people. In some countries, coverage reaches 70-80% including mobile networks, so if all your used networks support ipv6, this can be an easy and inexpensive alternative.