Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- #alumnos:
- #Martinez, Graciela
- #Medrano, Oscar
- #Ojeda, Elena
- use IO::Socket;
- #$puerto = 4444;
- print "Ingrese el puerto a escuchar\n -> ";
- $puerto.=<STDIN>;
- chomp($puerto);
- $servidor=IO::Socket::INET->new(proto =>'tcp',
- LocalPort =>$puerto,
- Listen =>SOMAXCONN,
- Reuse =>1) or die "Error al iniciar el servidor";
- print "Aceptando conexiones en Puerto del Servidor ==> $puerto \n";
- while ($conexion = $servidor ->accept()) {
- atender($conexion);
- }
- sub ejecutar($$) {
- ($comando, $conexion) = @_;
- $resultado = '';
- if ($comando eq 'fecha') {
- $resultado = localtime() . "\n";
- }
- ###########MODIFICACIONES####################################
- ##############################################################################################################
- #muestro las interfaces de red
- if ($comando eq 'ip') {
- $resultado= `ifconfig -a`;
- }
- #muestro uno ojos en la pantalla
- if ($comando eq 'ojos') {
- $resultado= `xeyes`;
- #muestro la distribucion del sistema
- }if ($comando eq 'distribucion') {
- $resultado= `cat /etc/issue`;
- #muestro informacion del logueo de los usuarios
- }if ($comando eq 'info loguin') {
- $resultado= `last`;
- }
- #muestro informacion de la placa madre
- if ($comando eq 'board') {
- $resultado= `dmidecode --type baseboard`;
- }
- ###############################################################################################################
- elsif ($comando eq 'v' || $comando eq 'version') {
- $resultado = "Version 1.0 - Universidad Nacional del Nordeste\n";
- }
- elsif ($comando eq 'scan') {# Scanea un puerto en Local Host
- print $conexion "Scan de Puerto -> ";
- $puerto=<$conexion>;
- $puerto =~ s/\r\n|\n//g;#Borro los saltos de Lineas
- $remote = IO::Socket::INET->new(
- Proto => "tcp",
- PeerAddr => "127.0.0.1",
- PeerPort => $puerto,
- );
- if ($remote){
- $resultado = "Puerto Abierto\n";
- }
- else
- {
- $resultado = "Puerto Cerrado\n"
- }
- }
- if ($resultado) {
- print $conexion "OK 200\n";
- print $conexion $resultado;
- }
- elsif ($comando eq 'salir') {
- print $conexion "Bye. Fin Conexión\n"
- }
- else
- {
- print $conexion "ERR 500\n";
- }
- }
- sub atender($) {
- $conexion = shift; #Toma el descriptor
- $ip = $conexion->peerhost; #La ip del Socket cliente
- $portc= $conexion->peerport;#El puerto del cliente
- print $conexion "Bienvenido uso de Soocket de Redes de Datos.\n";
- print "*Conexion establecida desde $ip y puerto del cliente $portc*]\n";
- do {
- print $conexion "->";
- if ($comando = <$conexion>) {
- $comando =~ s/\r\n|\n//g;#Borro los saltos de Lineas
- ejecutar($comando, $conexion);# Envio el comando y el descriptor
- } else {
- $comando = 'salir';
- }
- } until ($comando eq 'salir');
- $conexion->shutdown(2);
- print "[Conexión establecida $ip]\n";
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement