Su enrutador debe conocer su propia dirección IP externa, la mía sí, y si inicio sesión en la página de estado, puedo leerlo.
el software también puede leerlo: por ejemplo, utilizo lo siguiente en mi /etc/ddclient.conf
use=web, web='http://192.168.2.1/status_main.stm', web-skip='var wan_ip="'
Lo que permite que el ddclient
software obtenga la dirección IP externa de esa página en mi enrutador. Su enrutador probablemente será diferente en detalles, pero es probable que sea similar en el funcionamiento general.
Lo conveniente de los sitios web como http://icanhazip.com es que funcionan para todos, no hay necesidad de encontrar el enrutador y la contraseña para iniciar sesión y leer los parámetros de conexión.
upnp es otra forma de hacer esto, por ejemplo: https://stackoverflow.com/questions/799557/trying-to-get-nats-external-ipaddress-with-inatexternalipaddresscallback-in-cs