Imagino que el escenario que voy a presentar os será conocido a varios de vosotros.

Dispones de un servidor en casa para utilizar de laboratorio, y estás cansado de aplicaciones tipo NO-IP, DynDNS o incluso se te han capado el Team Viewer porque te has pasado horas conectado.

Puedes crear una VPN, o configurar un RDP con filtrado de algún tipo para conectarte de forma directa y gratuita.

Tienes el router perfectamente configurado, por RDP o VPN o VNC, o el servicio que queráis publicar, pero no recordáis la IP de vuestra casa, aunque muchos dicen que no cambian, ese día ha cambiado.

Bien con el script que vamos a mostrar hoy, recibimos por email, la IP de forma diaria (o con la programación que nos interese), solo debemos ejecutarlo en una máquina que siempre tengamos encendida y meterle las credenciales del correo cuando lo ejecutemos para no tener la contraseña en plano a la vista de todos.

# Este script solicita credenciales del correo la primera vez que se ejecuta.

# Comprueba la IP publica desde la que se ejecuta


# Nos envia el resultado, y se ejecuta cada 24 horas.

$credencial = Get-Credential

$ip = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

while ($true) {

     if ($ip -ne $null) {

Send-MailMessage -From ‘tudireccion@dominio.com‘ -To tudireccion@dominio.com‘ -Subject ‘PublicIP’ -Body (“Esta es la direccion IP Publica”+’ ‘ + $ip)  -SmtpServer ‘tuservidorsmtp(smtp.office365.com)’ -Port ‘587’-UseSsl -Credential $credencial

    } else {

Send-MailMessage -From ‘tudireccion@dominio.com‘ -To ‘tudireccion@dominio.com‘ -Subject ‘Error IP Publica’ -Body ‘Ha ocurrido un error al obtener la IP’ -SmtpServer ‘tuservidorsmtp(smtp.office365.com)’ -Port ‘587’-UseSsl -Credential $credencial

        }

#Podemos poner el tiempo que queramos, yo he configurado 24 horas

     Start-Sleep -Seconds 86400

}

El resultado es un correito en tu bandeja de entrada de forma diaria (puedes crear reglas para que no te aburras de verlo), con tu IP para que hagas con ella, lo que quieras…!!

Untitled