Ese tema se ha tratado anteriormente en este mismo foro, y entre las soluciones que se plantearon esta la segunda que mencionas, de hacer un get a un webserver como
www.whatismyip.com, y obtener de el la direccion ip del router.
Creo incluso que en su momento se incluyo algo de codigo, pero en caso de que no sea asi, no debe ser muy dificil construir un parser con el que puedas determinar el valor que te devolvio la pagina.