You are seeing a combination of things. Your home router has an address assigned by your service provider. That one address has to support every connection that could be made from the devices at your house. So a combination of Network Address Translation (NAT) based on Dynamic Host Control Protocol (DHCP) is used.
When you reboot your router, particularly if it has been off for a while, all internal connections must be re-leased. So every device connected to your home network will attempt to take out a lease of an internal IP address. Because the router manages this, the device's information is available for internal routing. Let's say that you have three computers at your house. As the router comes up, each computer gets its own internal address. If a computer then wants to establish a connection, it makes one through the router, but the router at this point performs NAT. It translates that connection to one of its own and thereafter acts as a relay between the far end of that connection and your computer's assigned addresses.
If you think about this, you would realize that we would run out of addresses quickly. And in fact we ran out of IPv4 addresses some time ago, but that is all transparent to us because the router, when doing NAT, translates your home computer's 4-byte IP address on your home network to the IPv6 address on the service provider's network. The IPv6 address is four times the storage of the IPv4 address,
The reason the router doesn't run out of addresses so easily is because NAT allows each home network to re-use these internal addresses. Virtually ALL home networks use a sub-net based on 192.168.0.0 as the "base" of the home network range. If you looked at the router's diagnostics or resources page, you would see addresses that began with 192.168. and would then end with two more digits. This is the result of NAT and DHCP working together.
Your question about the "main IP" is correct because the router never EVER allows any of the 192.168.x.x addresses out into the world. It ALWAYS translates them so that they take on your router's address. And it keeps the connections separated because of the dynamic use of "port numbers." Each connection has a unique port number, so when a message comes in for
, the router translates that to (or whatever).