Live in your World. Die in Mine.

Archive for Marzo, 2008

Aprendiendo Perl

by Neoyagami on Mar.26, 2008, under Uncategorized

Oas:

El día de hoy me dio por aprender a como hacer un programita que se conecte tal cual como cuando uno telnetea a algún servicio para probarlo,

esta prueba se conecta vía telnet a algún servidor de correo, y realiza un envío de prueba
si este manda algún error o no responde como es debido, el script caera enviando un mensaje de error.

Comencemos:

#!/usr/bin/perl
#usual para comenzar un script de perl.
#publicado bajo gpl D:

my $mail = ‘juanito@lospalotes.cl’;
my $maildst = ‘pedrito@midomain.cl’;
#indicamos la casilla de origen y destino

use Net::Telnet ();
$pop = new Net::Telnet (Telnetmode => 0);
$pop->open(Host => “ip_destino”,
Port => 25 ,
errmode =>sub {&error}
Timeout => 15) or die “no se pede”;

#cargamos la libreria net.telnet de perl que nos deja hacer milagros :D
#luego creamos un objeto pop(no recuerdo por que le di ese nombre)
# observen la “variable” Telnetmode, esta es la que deja que el objeto pop sea
#telnet puro y no una consola remota, esto es por que por defecto utiliza un metodo
#que requiere autenticación,
# ahora usamos el método open para realizar la conexión hacia el host indicado en “ip_destino”
# la variable errmode permite definir una subrutina (miren al final del ejemplo)
# esto es ideal definirlo, por que si existe un error en la coneccion que realizan con el metodo
# open en vez de caerse todo el interprete, solo ejecutara lo que hay en esa subrutina y luego
# devolvera error, deforma que el programa puede continuar y ud pueden desplegar algun tipo de
# alarma en su aplicación
# la variable timeout, es la que indica los segs que la coneccion intentara enviar datos
# antes de fallar por no tener respuesta

$line = $pop->getline;
die $line unless $line =~ /^220/;

#ahora como todo buen stmp este lo primero que debe hacer es entregarnos un mensaje diciendo
# que esta online y esto lo hace diciendo “220″ seguido de cualquier otra estupides informativa
# por ejemplo “220 smtp.miempresa.cl exim-exchange servers”
# con el 220 nos informa que esta listo para iniciar comunicacion.
# usamos el metodo getline que obtiene una linea entregada por el server y la almacenamos
#en $line, luego buscamos que esa linea contenga dicho “220″ si es asi podemos seguir
# si no la conexión debe morir.

$pop->print(“ehlo asd”);
#acto seguido que el servidor se presente, debemos hacerlo nosotros
#con el metodo print es lo mismo que escribir ehlo asdf y presionar enter.
#nos presentando indicando que nuestra maquina se llama asdf D:

$line = $pop->getline;
#cuando nos presentamos esperamos que el servidor responda como es debido
#el servidor empesara a responder con informacion sobre si mismo,
#bit de codificacion y posibilidad de autenticación
#cada linea comenzara con un “250 ” salvo la ultima que sera un “250-”
#asi que nos quedamos capturando lo que envia el servidor hasta que
#llege dicha linea con el guion luego del numero

while ($line =~ /^250\-/ ) {
$line = $pop->getline;

}
#en el momento
#una vez listos podemos enviar el mail
#este es un intento sin autenticacion, creo que luego agregare la funcion de autenticacion
#sin embargo como mi opcion es enseñar. prefiero hacerlo asi

$pop->print(“mail from:< $mail >“);
$line=$pop->getline;
die $line unless $line =~ /^250/ ;

#le enviamos al servidor la cadena “mail from:
#y esperamos a que el servidor nos diga ok con una linea comenzando con “250″
# si esto no es asi pueden matar la aplicacion o simplemente seguir con algo

$pop->print(“rcpt to:< $maildst >“);
$line=$pop->getline;
die $line unless $line =~ /^250/ ;

#se envia la cadena que indica el receptor de el correo
#rcpt to:< maildestino >
#se sigue la regla del 250

$pop->print(“data”);
$line=$pop->getline;
die $line unless $line =~ /^354/ ;

#luego que ingresamos al receptor y no tubimos errores
#estamos listos para enviar el “data” que dara inicio al contenido de el correo
#enviamos caracteres y decreatamos el final de el mensaje cuando enviemos solo un punto
#con eso damos por terminado el mensaje y esperamos a que el servidor responda
# con su tipico 250

$pop->print(“el mensaje”);
$pop->print(“.”);
$line=$pop->getline;
die $line unless $line =~ /^250/ ;

#con esto el mensaje se debe haber agregado a la cola para ser entregado.

#aqui la subrutina que se ejecuta si es que tenemos un error al generar la coneccion con el
#metodo open

sub error {

}
# no tenemos nada por que no queremos que haga nada de momento.

bueno espero que esto le sirva a alguien..
si alguien comenta esto
good D:

Leave a Comment more...

WII!!

by Neoyagami on Mar.10, 2008, under Uncategorized

Buenas tardes.. arto tiempo sin aparecer ^^

Pues la florejera puede hacer muchas cosas y una de ellas es evitar postear inclusive de mis foros favoritos y que administro a nivel de servidor como http://www.chilehardware.com (spam D:).

Bien, desde el ultimo post han pasado muchas cosas entretenidas. Me acendieron en mi nuevo trabajo y ahora formo parte de HC (a.k.a. Hosting Center) en teoria se supone que es mas pro y no tenemos que regirnos bajo turnos, eso quiere decir que porfin despues de 3 años trabajando 6 dias a la semana con libres inclusive asignado a dias laborales, no es divertido tener libre el jueves… ¿CON QUIEN SE SUPONE QUE CARRETEAS UN JUEVES? osea yo igual tengo amigos hebrios que no tienen problema con estar durmiendo la “mona” hasta las 4 de la tarde un dia jueves. Pero la gente normal con amigos no tan hebrios como los mios lo pasarian super mal. Bueno eso ahora es pasado :D , ahora tengo mis fines de semana completitos para mi y me ocurre algo a lo que no estaba acostumbrado…

ES MUCHO TIEMPO osea que hago en 48 horas sin trabajo. La verdad, mi cuerpo se habia acostumbrado a que llegase mi dia libre y tuviera 14 horas para carretear luego tener 2 horas para jugar alguna cosa en alguna consola o pc (tengo una buena colección de consolas) y el resto para dormir y seguir trabajando el dia que venia. pero ahora tengo 48 horas de descanso.. me costo acostumbrar a no hacer nada en ese intertanto, hasta sentía culpable D:

Aparte de ese pequeño altercado de mi yo interior y mi tiempo libre lo demas esta super bien.
Mi trabajo ahora en vez de simplemente contestar tickets de una cola determinada, ahora realizo trabajos que me hacen aprender mas aún de el mundo linux. aprendi a sincronizar servidores Open Ldap, tambien aprendi a sacar estadisticas de firewalls Checkpoint(instalados en Sun Solaris) y artas cosas mas que no tenia idea. trabajar algo con MSsql(para mi pesar :( )
He aprendido que no cambio mi GENTOO por ninguna otra distro de SHIT. debian sucks.ubuntu sucks, suse sucks,

Gracias al aumento de sueldo ahora cuento con DS,WII,PSP, y la PS3 viene en camino ;)
me he vuelto algo adicto a destajar cuerpos en NO MORE HEROES (juego muy bueno y que al parecer ha pasado algo desapercibido) ahora contando los dias a lo que llegue mi nueva PS3 ,(hojala que a una fecha cercana a mis vacaciones)

Bueno. no tengo mucho que contar srs. llegando a mi casa tengo unos experimientos que hacer con mi wii para poder hacer funcionar mi Copia Original de SMASH BROTHERS BRAWL. que tiene algunos problemas con WIIkey :(

salu2!

2 Comments more...

¿Buscando algo?

Use el cuadro a continuación para buscar:

¿Aún no encuentras lo que buscas? ¡deja un comentario en algun post y vere!