ping 172.16.1.116Pinging host 172.16.1.116 : 172.16.1.116ping: No reply. Time Out !!ping: No reply. Time Out !!ping: No reply. Time Out !!ping: No reply. Time Out !!Host 172.16.1.116 replied to 0 of the 4 pingsready 12:26:32 |
telnet 172.16.1.116 1830Trying...Connected to 172.16.1.116.Escape character is '^]'. |
telnet 172.16.1.116 1830Trying...Connected to 172.16.1.116.Escape character is '^]'. telnet> quit |
On target system (Linux) [ndav@phx-lab-lnx64 ~]$ perl tcplisten.pl -p 1830 -m 'Connection has been accepted'perl tcplisten.pl -port 1830 -message 'Connection has been accepted' On OpenVOS client stp -ttp asciiready 12:16:34telnet 164.152.77.155 1830Trying...Connected to 164.152.77.155.Escape character is '^]'.Connection has been accepted Escape character is '^]'.Connection closed by forei.Ready 12:16:40 |
On OpenVOS target system perl tcplisten.pl -p 1830 -m 'made it to m16'perl tcplisten.pl -port 1830 -message 'made it to m16' On Linux client [ndav@phx-lab-lnx64 ~]$ telnet 164.152.77.128 1830Trying 164.152.77.128...Connected to rigel.az.stratus.com (164.152.77.128).Escape character is '^]'.made it to m16Connection closed by foreign host.[ndav@phx-lab-lnx64 ~]$ |
telnet 172.16.1.116 1830Trying...telnet: Unable to connect to remote host: The connection was refused.ready 12:31:28 |
telnet 172.16.1.116 1830Trying...telnet: Unable to connect to remote host: Network trying to be reached is unreac+hable.ready 12:54:34 |
telnet 172.16.1.116 1830Trying...telnet: Unable to connect to remote host: No route to host.ready 12:55:44 |
telnet 172.16.1.116 1830Trying...telnet: Unable to connect to remote host: The operation timed out. |
|
Mensaje
|
Significado
|
|---|---|
|
Conectado (con banner)
|
Se puede acceder al servidor y a la aplicación
|
|
Conectado (sin banner)
|
Es probable que pueda conectarse al servidor y a la aplicación
|
|
Rechazado
|
Se puede conectar al servidor, pero no a la aplicación – probablemente
|
|
Inalcanzable
|
No se puede conectar con el servidor
|
|
Tiempo de espera
|
No se puede contactar con el host – probablemente
|
perl tuc.pl -i 172.16.1.116 -p 1830Reply received on UDP socket from 164.152.77.128 message: echoed by udpecho.pl:+sent by tuc.pl at Mon Aug 30 13:31:34 2010ready 13:31:34 |
perl tuc.pl -i 172.16.1.116 -p 1830ICMP Destination port unreachable message received from 172.16.1.116ready 11:40:12 |
perl tuc.pl -i 172.16.1.116 -p 1830ICMP Destination network unreachable message received from 164.152.77.171ready 11:43:50 perl tuc.pl -i 172.16.1.116 -p 1830ICMP Destination host unreachable message received from 164.152.77.171ready 11:44:54 |
perl tuc.pl -i 172.16.1.116 -p 1830ICMP Time exceeded , TTL expired in transit message received from 164.152.77.34ready 11:45:39 |
perl tuc.pl -i 172.16.1.116 -p 1830No response was received from 172.16.1.116ready 16:43:26 |
perl tuc.pl -i 172.16.1.117 -p 1830 -t 10No response was received from 172.16.1.117ready 12:06:26 perl tuc.pl -i 172.16.1.117 -p 1830 -t 1 No response was received from 172.16.1.117ready 12:06:32 |
|
Mensaje
|
Significado
|
|---|---|
|
Mensaje del banner de la aplicación
|
Se puede acceder al servidor y a la aplicación
|
|
Mensaje ICMP de red/host
|
No se puede conectar con el servidor
|
|
Mensaje ICMP del puerto del host
|
Puedo conectarme al servidor, pero no a la aplicación
|
|
Si no hay respuesta, la aplicación muestra un mensaje en la barra superior
|
No se puede conectar con el servidor
|
|
No hay respuesta; la aplicación no envía el mensaje del banner
|
Es posible que se pueda o no se pueda contactar con el servidor
|
tcplisten.pl
# tcplisten.pl begins here
# # Versión 1.00 30 de julio de 2010 # Este script se ha probado en # Open VOS 17.0.2ah con Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP con el Service Pack 3 instalado # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multihilo # Red Hat 4AS-5.5 en ejecución # Perl v5.8.5 compilado para x86_64-linux-thread-multi # #stratus # use IO::Socket; use Getopt::Long; use Sys::Hostname; use strict; my ($result); my ($localPort, $message, $peerAddr); my ($newSock, $data); $result = GetOptions(‘port=s’ => $localPort, ‘message=s’ => $message); si (($result != 1) || !(defined($localPort))) { imprimir «nnUso:n»; imprimir «tperl tcplisten.pl -port NÚMERO-DE-PUERTO [-message MENSAJE]nn»; salir; } si (!defined($message)) { imprimir «No se ha especificado ningún mensaje: creando mensaje»; $message = «Conexión aceptada por tcplisten, que se ejecuta en » . hostname; } imprimir “perl tcplisten.pl -port $localPort -message ‘” . $message . “‘n”; my $sock = IO::Socket::INET->new( Proto => «tcp», LocalPort => $localPort, LocalAddr => «0.0.0.0», Escuchar => 1, ) o se produce un error: «No se ha podido crear el socket para el puerto $localPort: $!n»; mientras (1) { my $newSock = $sock->accept (); imprimir «Conexión aceptada desde » . $newSock->peerhost . » en » . localtime () . «n»; imprimir $newSock $message . “n”; $newSock -> shutdown(2); $sock->read($data, 1024); # espera a recibir una señal de cierre */ $newSock->close(); } # # tcplisten.pl termina aquí |
tuc.pl
# tuc.pl begins here
# # Versión 1.00 30 de julio de 2010 # Este script se ha probado en # Open VOS 17.0.2ah con Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP con el Service Pack 3 instalado # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multihilo # Red Hat 4AS-5.5 en ejecución # Perl v5.8.5 compilado para x86_64-linux-thread-multi # #stratus # use IO::Socket; use IO::Select; use Getopt::Long; use strict; my ($result); my ($destIP, $destPort, $timeout, $result, $message, $flags); my ($ready, $socket); my ($x, $c, $icmpAlready); $result = GetOptions(‘ip=s’ => $destIP, ‘port=s’ => $destPort, ‘timeout=s’ => $timeout); si (($result != 1) || !(defined($destIP) && defined($destPort))) { imprimir «nnUso:n»; imprimir «tperl tuc.pl -ip DIRECCIÓN-IP-DE-DESTINO » . «-puerto NÚMERO-DE-PUERTO-DE-DESTINO-nn»; salir; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print “OK, pero ” . $timeout . «parece excesivamente largo.n»; } $message = «enviado por tuc.pl a las » . localtime(); my $sock = IO::Socket::INET->new( Proto => «udp», Puerto de origen => $destPort, PeerAddr => $destIP ) o se produce el error «No se ha podido crear el socket para el destino $destIP: $!n»; my $isock = IO::Socket::INET->new( Proto => ‘icmp’); $sock->send($message) o die «Error al enviar: $!n»; $message = “”; my $read_set = new IO::Select(); $read_set->add($sock); $read_set->add($isock); ($ready) = IO::Select->select($read_set, undef, undef, $timeout); $icmpAlready = 0; $c = 0; foreach $socket (@$ready) { $c = $c + 1; si ($socket == $sock) { $x = «Respuesta recibida en el socket UDP desde «; $socket->recv($message, 100, $flags); si ($icmpAlready == 0) { si (longitud($mensaje) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } en caso contrario # se ha recibido un mensaje ICMP { $icmpAlready = 1; $socket->recv($message, 100, $flags); si (longitud($mensaje) > 98) { print «Demasiado largo (» . length($message) . «») Mensaje ICMP procedente de » . $socket->peerhost . "mensaje: " . $mensaje . "n"; } elsif (length ($message) < 52) { print «Inesperadamente corto (» . length($message) . “) Mensaje ICMP procedente de ” . $socket->peerhost . “n”; } en caso contrario # procesar el mensaje ICMP { my $type = ord (substr ($message, 20, 1)); my $code = ord(substr($message, 21, 1)); my $port = ord (substr ($message, 50, 1)) * 256 + ord(substr($message, 51, 1)); si ($port != $destPort) { print «Se ha recibido un mensaje ICMP inesperado de » . $socket->peerhost . ” mensaje: ” . substr($message, 20) . «n»; } si no, el mensaje ICMP es correcto { si ($type == 3) { if ($code == 0) { print «ICMP: red de destino » . «Se ha recibido un mensaje de un número inaccesible». $socket->peerhost . «n»; } elsif ($code == 1) { print “ICMP: Host de destino ” . «Se ha recibido un mensaje de un número inaccesible». $socket->peerhost . «n»; } elsif ($code == 3) { print “Puerto de destino ICMP ” . «Se ha recibido un mensaje de un número inaccesible». $socket->peerhost . «n»; } elsif ($code == 6) { print “Red de destino ICMP ” . «Se ha recibido un mensaje desconocido de...». $socket->peerhost . «n»; } elsif ($code == 7) { print “ICMP: Host de destino desconocido” . «Mensaje recibido de » . $socket->peerhost . «n»; } elsif ($code == 8) { print “Host de origen ICMP aislado ” . «mensaje recibido de » . $socket->peerhost . «n»; } elsif ($code == 9) { print “ICMP: red bloqueada administrativamente ” . «Se ha recibido un mensaje no autorizado de...». $socket->peerhost . «n»; } elsif ($code == 10) { print “Host ICMP administrativamente ” . «Se ha recibido un mensaje no autorizado de...». $socket->peerhost . «n»; } elsif ($code == 11) { print “Red ICMP inaccesible para ” . «Mensaje TOS recibido de » . $socket->peerhost . «n»; } elsif ($code == 12) { print “ICMP: host inaccesible para ” . «Mensaje TOS recibido de » . $socket->peerhost . «n»; } elsif ($code == 13) { print “Comunicación ICMP ” . «Mensaje administrativamente prohibido recibido de » . $socket->peerhost . «n»; } else { print “Se ha recibido un mensaje ICMP inesperado de tipo = ” . $type . «, code = » . $code . « de » . $socket->peerhost . «n»; } } # si ($type == 3) elsif (($type == 11) && ($code == 0)) { print «Tiempo de ICMP agotado, TTL caducado durante la transmisión» . «Mensaje recibido de » . $socket->peerhost . «n»; } else { print “Se ha recibido un mensaje ICMP inesperado de tipo = ” . $type . «, code = » . $code . « de » . $socket->peerhost . «n»; } } # si no # el mensaje ICMP es correcto } # en caso contrario # procesar el mensaje ICMP } # else # se ha recibido un mensaje ICMP } # foreach $socket (@$ready) if ($c == 0) { print «No se ha recibido respuesta de » . $sock->peerhost . «n»; } # # tuc.pl termina aquí |
udpecho.pl
# udpecho.pl begins here
# # Versión 1.00 30 de julio de 2010 # Este script se ha probado en # Open VOS 17.0.2ah con Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP con el Service Pack 3 instalado # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multihilo # Red Hat 4AS-5.5 en ejecución # Perl v5.8.5 compilado para x86_64-linux-thread-multi # #stratus # use IO::Socket; use IO::Select; use Getopt::Long; use strict; my ($result); my ($localPort, $debug, $result, $message, $flags); my ($ready, $socket); my ($x, $c); $result = GetOptions(‘port=s’ => $localPort, «debug» => $debug); si (($result != 1) || !(defined($localPort))) { imprimir «nnUso:n»; imprimir «tperl udpecho.pl -port NÚMERO-DE-PUERTO-LOCAL [-debug]nn»; salir; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => «udp», LocalPort => $localPort ) o se produce un error: «No se ha podido crear el socket $!n»; my $read_set = new IO::Select(); $read_set->add($sock); $message = “”; mientras (1) { ($ready) = IO::Select->select($read_set, undef, undef, 300); foreach $socket (@$ready) { $socket->recv($message, 100, $flags); if (defined($debug)) { print “Mensaje de ” . $socket->peerhost . "mensaje: " . $mensaje . "n"; } $socket->send(“Repetido por udpecho.pl: ” . $message) or die “Error al enviar: $!” +n»; } } # # udpecho.pl termina aquí |
