Se o seu roteador DSL tiver SNMP, geralmente você pode buscar, por meio do snmpget, o endereço IP atribuído à interface externa do seu roteador DSL. A maioria dos fabricantes de roteadores DSL (mas não todos) tem SNMP e suportam MIB-II.
exemplo:
[root@myhost ~]# snmpwalk -v1 -c ***** 10.1.10.1 ipAdEntAddr
IP-MIB::ipAdEntAddr.75.146.91.10 = IpAddress: 75.146.91.10
Nesse caso, estou consultando o IP "interno" com o SNMP e obtenho o seguinte IP como meu IP externo. onde ****** é minha string ou senha da comunidade SNMP. ipAdEntAddr é a string OID do SNMP que eu consultei para obter a resposta.