Which is neatly abstracted away so you don’t have to think about it unless you want to. And therefore reaching out to an external server and having it say where the request came from is the path of least resistance for a script that can work across different hosts with minimal machine specific configuration.
Listen, if you want to check the IPv6 address from the interface list go ahead I’m not trying to stop you.
But because I anyway need to reach a third party to know my own IPv4 address then yeah when that third party can also tell me IPv6 address I’m gonna do it that way.
That requires running it on the router/device which gets the public IP address. By using the service you can update your DNS IP address on a system that is behind the router.
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.
As I've said before. The server behind the router does not have a public IPv6 address. It is NATed to the Internet. Getting the internal IPv6 address is useless for this case.
I do not like to have the servers/computers that are on the internal home network directly connected to the Internet.