I have a router connected to the internet, it gets the public IP address.
The router is connected to the internal network in my home and has the IP address of 192.168.1.1.
Behind the router is my computer which has a non-public IP address, for example 192.168.1.2. My computer is the one I want to run the program to update the DNS entry. My computer does not know what the public IP address is by looking at its interfaces.