So I've been looking into NAT traversing for my IoT project, and I'm a little confused. Here's how it goes:
When I go out to ask google "what is my public ip address?", I get an address like 46.114.190.96. This is, as far as I understand, my wifi router's IP address, since it serves as the public "portal" between my LAN and the public internet. Lets call this "the public IP".
The router also have a local IP address, 192.168.0.1, which I can use to log in to my router and do some settings. I'm setting up Virtual Server (for port forwarding, as I'd like to access my home server from outside the LAN). I've set it up so that it forwards traffic coming in to my local server, which for testing I hosted a simple web page. So far so good.
Things get confusing when I actually try to access the server, from outside the home network. If I type in 46.114.190.96, the page doesn't load. I've set the ports and everything up correctly.
BUT when I log into my wifi router, on the landing page it gives me another IP: 10.114.160.96. Lets call this one the "router IP"
and when I type this address in, voila, the page loads.
Even weirder, some of my friends typed the "router IP" in and can also access the page, and some other friends cannot (their browser just keeps trying to load until timeout). I've checked that the "router IP" is still the same. It does change once every now and then though.
So my question is:
What exactly is that "router IP"?
Why does it works for some of my friends, but doesn't for others?