The problem is the lack of IPv4 addresses. IPv4 addresses are ridiculous expensive. And most people don't need a public address so ISP save a ton of money by using NAT. I don't know if they must give you one or not if you ask, but I think a public IP address should be a human right, or you should at least be able to change to an ISP that can provide one.