You are right, you can use sites like “What’s my IP” to get your external IP address.
Due to a shortage of IPv4 adresses in the world (there are a physical limit to them) it is not feasible that everything that can connect to a network gets a uniqe IPaddress on the internet. There simply are not enough addresses. IPv6 do sort that problem out, but we are still kinda reliant on IPv4 on the internett. To get around this limitation a few IP-ranges where reserved for LAN (Local Area Network) addressing (Internet is a type of WAN, or Wide Area Network). These ranges are 10..., 192.168..* and 172.16.. - 172.31... The two first are the most used ones. This means that your internet router/modem gets ONE external IP address from your internet supplier. this is your external IP address. You router provides internal IP-addresses from one of the three ranges above to anything you connect to your internal network. Your router also provides a service called NAT (Network Address Translation) that routes requests from the external IP to an internal IP. This do not work the other way around. Things outside your LAN cannot request data from your LAN’s internal IP’s, since they do not know what lies behind your external IP. This is why you need port forwarding. So that when your friends minecraft clients connects to your external IP, your router knows that any request it gets on that port has to be forwarded to that spesific internal IP address.