Seu roteador deve saber seu próprio endereço IP externo, o meu, e se eu fizer login na página de status, eu posso lê-lo.
O software também pode lê-lo: por exemplo, eu uso o seguinte no meu /etc/ddclient.conf
use=web, web='http://192.168.2.1/status_main.stm', web-skip='var wan_ip="'
O que permite que o software ddclient
obtenha o endereço IP externo dessa página no meu roteador. Seu roteador provavelmente será diferente em detalhes, mas provavelmente semelhante em operação geral.
O que é conveniente em sites como o link é que eles funcionam para todos, não é necessário encontrar o roteador e a senha para fazer login nele leia os parâmetros de conexão.
upnp é outra maneira de fazer isso, por exemplo: link