Averigua tu IP externa (pública)

networking
<?php $ip = $_SERVER['REMOTE_ADDR']; echo "Tu dirección IP externa: $ip“; ?>
Esta receta explica formas de conocer la IP pública con la que te estás concectando a Internet

Si utilizas un router o algo del estilo que incorpore un servidor DHCP, la dirección asignada a tu ordenador con toda seguridad será una dirección IP privada Pero a veces, es necesario conocer cuál es la IP pública con la que sales a Internet, con el fin de configurar un cliente DNS dinámico u otro tipo de aplicación específica.

Para conocerla puedes usar alguno de estos métodos:

Shell

lynx -dump http://checkip.dyndns.org/ | grep IP | awk {'print $4'}

$ curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+'

Shell (avisa por mail)

#!/bin/bash
# Requiere los paquetes "mailx" y "lynx"
# Te envía un email cada vez que te cambia la IP pública. Ejecutar en background
 
while true
do
    old_ip="`cat ~/public.ip 2> /dev/null`" 
    new_ip="`lynx -source http://www.whatismyip.com/ | grep '&lt;TITLE>' | awk '{print $4}'`"
 
    if [ "$old_ip" != "$new_ip" ]; then
        echo $new_ip | mail tu@email.com -s "Tu IP ha cambiado"
        echo $new_ip > ~/public.ip
    fi
    sleep 60
done

PHP

<?php
echo "Tu dirección IP externa es: ", $_SERVER['REMOTE_ADDR'];
?>

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hola Hice un script basado en

Hola

Hice un script basado en este. Funciona muy bien cuando lo ejecuto a mano.
pero si lo pongo que se inicie con init.d no me carga otros scripts y si uso el cron me apaga el ordenador al cavo de unas horas.

Puede ser falta algo para que se pueda ejecutar automaticamente? si es necesario puedo subir el codigo.

Gracias

Imagen de magmax

Sin mirar

Hola!

Pues así, sin código ni nada... ni idea.

Probablemente tengas que publicar el código para que podamos echarte una mano.

Miguel Ángel García
http://magmax.org

un poco mas

#!/bin/bash
#
# Name:         checkip
# Description:  Script alternative for obtain your real internet ip
# Version:      1.0
# Author:       Jose V Beneyto, <joberui at ei dot upv dot es>
# License:      GNU/GPL (http://www.gnu.org/copyleft/gpl.html)
# Depends on:   netcat,tr,grep
 
#checkdepends: check dependecies
checkdepends() {
        for dep in tr grep netcat
        do
                which $dep >& /dev/null
                if [ $? == 1 ]
                then
                        echo "$dep not found, please install it!" >&2
                        exit 1
                fi
        done
}
#get internet ip
inetip() {
        echo -ne "GET /index.html HTTP/1.0\n\n" | \
                netcat checkip.dyndns.org 80 | \
                tr '>' '\n' | tr '<' '\n' | \
                grep 'Current IP Address:' | sed 's|Current IP Address:|inet ip:|g'
        # with curl (uncomment this line and comment the line below, you need curl as dependency)
        #curl -s http://checkip.dyndns.org/ | tr '>' '\n' | tr '<' '\n' | grep 'Current IP Address:'
}
#get lan ip
lanip() {
        /sbin/ifconfig | grep 'inet addr:192' | \
                tr ' ' '\n' | grep 'addr:192' | \
                sed 's|addr:| lan ip: |g'
}
 
#main
checkdepends
inetip
lanip
 
exit 0
 
# End of File

gracias me ha sido muy util!

gracias
me ha sido muy util!

Excelente!!!

Ilustrosísimos como útiles los ejemplos, era justo lo que andaba buscando.
Muchísimas gracias

Gran valor!

Muchas Gracias me a ayudado

Muchas Gracias me a ayudado mucho.

Yo lo e adaptado a mis necesidades, que son modificar la ip publica en los archivos de mi servidor DNS.Ya que tengo mis dominios enlazados a mi ordenador por medio de DYNDNS.org donde tengo el servidor DNS. y Este tras leer la configuracion (que ahora modifico automaticamente gracias a unas modificaciones seguro que algo chapuzas de tu codigo ) resuelve la ip de mi ordenador.

Otra vez, Gracias!