[BASH] Enviar ip pública por correo

Iniciado por ccrunch, 16 Enero 2014, 02:15 AM

0 Miembros y 1 Visitante están viendo este tema.

ccrunch

Hola a todos, tengo un servidor casero en debian 7 y quiero que al arrancar me envíe la IP pública por correo. He probado esto: http://elayo.es/enviar-ip-publica-por-mail pero no funciona, he instalado los paquetes que pide (lynx y el de email) y nada.

Sé hacer que a cada arranque ejecute el script, lo que no sé es hacerlo funcionar.

Salu2 y gracias.

daryo

#1
aca no hay clarividentes que error te da?

aca guarda la ip en ip.txt solo tendrias que mandarla por mail

Código (bash) [Seleccionar]
wget "www.monip.org" && more index.html | awk 'BEGIN{FS="<"};{print $4}' | awk 'BEGIN{FS=">"};{if(NR==7)print "echo " $2 ">ip.txt"}' | sh &&  rm index.html
buenas

ccrunch

Cita de: daryo en 16 Enero 2014, 02:21 AM
aca no hay clarividentes que error te da?

aca guarda la ip en ip.txt solo tendrias que mandarla por mail

Código (bash) [Seleccionar]
wget "www.monip.org" && more index.html | awk 'BEGIN{FS="<"};{print $4}' | awk 'BEGIN{FS=">"};{if(NR==7)print "echo " $2 ">ip.txt"}' | sh &&  rm index.html

Hola daryo gracias.

Si instalo un servidor de correo en esa máquina me imagino que podré mandar correos, por lo menos hace 2 años si instalabas un servidor te dejaba usarlo como open relay (no hace falta autentificarse para mandar correo).

Salu2

daryo

no me funciono el comando mail pero se podria probar este otro comando que usa una cuenta de un servidor de gmail hotmail o etc

http://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/
buenas

ccrunch

Buenas a todos, ya tengo la solución. Finalmente encontré como hacerlo con exim4. Es mucho más fácil que los métodos anteriores.

INSTALACION Y CONFIGURACION
Ejecutamos:
dpkg-reconfigure exim4-config
(Si no esta instalado, lo sintalamos con apt-get install exim4)
En la reconfiguración/instalación seleccionamos:
* El correo se envía mediante un «smarthost»; se recibe a través de SMTP
* Nombre del sistema de correo: tudominio.xxx
* Direcciones IP en las que recibir conexiones SMTP entrantes: 127.0.0.1
* Otros dominios para los que se acepta el correo: en blanco
* Máquinas para las cuales reenviar correo: en blanco
* Direccion IP o nombre del equipo (smarthost) saliente: smtp.gmail.com::587
* Desea ocultar el nombre de correo local en los mensajes salientes? NO
* Limitar el numero de consultas DNS (Marcación bajo demanda)? NO
* Dividir la configuración en pequeños ficheros? Sí
Ahora editamos el archivo /etc/exim4/passwd.client
vi /etc/exim4/passwd.client
# password file used when the local exim is authenticating to a remote
# host as a client.
#
# see exim4_passwd_client(5) for more documentation
#
# Example:
### target.mail.server.example:login:password
gmail-smtp.l.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD
*.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD
smtp.gmail.com:yourAccountName@gmail.com:y0uRpaSsw0RD
Cambiamos permisos del archivo:
chown root:Debian-exim /etc/exim4/passwd.client
Reiniciamos el servidor de correo:
service exim4 reload

Ejemplo de uso en la consola:
mail correo_de@destino.com
Luego nos preguntará subject, cuerpo mensaje, etc. Para acabar de escribir el cuerpo de un mensaje, apretamos intro e insertamos un punto (.), que significa que hemos acabado de editar el mensaje.

Pero en mi caso quiero que en cada arranque me envíe la IP pública. Así que tengo que instalar este paquete: apt-get install curl
Editamos /etc/rc.local e insertamos:
echo "`curl icanhazip.com`" | mail "subject" correo_de@destino.com

Con curl icanhazip.com obtenemos la ip pública. El icanhazip.com se puede reemplazar por otros sitios para obtener la IP. Si hacemos curl cualesmiip.com en este caso nos da el código fuente de la página, aunque si miramos dentro de él podemos ver la ip pública. Vamos, funciona pero es más largo, con icanhazip.com solo obtenemos la ip pública.

En fin, espero que os haya sido de ayuda.

Salu2