ping 172.16.1.116 Pinging host 172.16.1.116 : 172.16.1.116 ping: 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 pings ready 12:26:32 |
telnet 172.16.1.116 1830 Trying... Connected to 172.16.1.116. Escape character is '^]'. |
telnet 172.16.1.116 1830 Trying... 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 ascii ready 12:16:34 telnet 164.152.77.155 1830 Trying... 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 1830 Trying 164.152.77.128... Connected to rigel.az.stratus.com (164.152.77.128). Escape character is '^]'. made it to m16 Connection closed by foreign host. [ndav@phx-lab-lnx64 ~]$ |
telnet 172.16.1.116 1830 Trying... telnet: Unable to connect to remote host: The connection was refused. ready 12:31:28 |
telnet 172.16.1.116 1830 Trying... telnet: Unable to connect to remote host: Network trying to be reached is unreac +hable. ready 12:54:34 |
telnet 172.16.1.116 1830 Trying... telnet: Unable to connect to remote host: No route to host. ready 12:55:44 |
telnet 172.16.1.116 1830 Trying... telnet: Unable to connect to remote host: The operation timed out. |
Mensaje
|
Significado
|
---|---|
Conectados (con la bandera)
|
Puede llegar al host y a la aplicación
|
Conectado (sin bandera)
|
Puede llegar al anfitrión y a la aplicación - probablemente
|
Rechazado
|
Puede llegar al anfitrión pero no a la aplicación - probablemente
|
Inaccesible
|
No puede llegar al anfitrión
|
Tiempo de espera
|
No puede llegar al anfitrión - probablemente
|
perl tuc.pl -i 172.16.1.116 -p 1830 Reply 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 2010 ready 13:31:34 |
perl tuc.pl -i 172.16.1.116 -p 1830 ICMP Destination port unreachable message received from 172.16.1.116 ready 11:40:12 |
perl tuc.pl -i 172.16.1.116 -p 1830 ICMP Destination network unreachable message received from 164.152.77.171 ready 11:43:50 perl tuc.pl -i 172.16.1.116 -p 1830 ICMP Destination host unreachable message received from 164.152.77.171 ready 11:44:54 |
perl tuc.pl -i 172.16.1.116 -p 1830 ICMP Time exceeded , TTL expired in transit message received from 164.152.77.34 ready 11:45:39 |
perl tuc.pl -i 172.16.1.116 -p 1830 No response was received from 172.16.1.116 ready 16:43:26 |
perl tuc.pl -i 172.16.1.117 -p 1830 -t 10 No response was received from 172.16.1.117 ready 12:06:26 perl tuc.pl -i 172.16.1.117 -p 1830 -t 1 No response was received from 172.16.1.117 ready 12:06:32 |
Mensaje
|
Significado
|
---|---|
Mensaje del banner de la aplicación
|
Puede llegar al host y a la aplicación
|
Red ICMP/mensaje central
|
No puede llegar al anfitrión
|
Mensaje de puerto ICMP del host
|
Puede llegar al anfitrión pero no a la aplicación
|
No hay respuesta, la aplicación envía un mensaje de banner
|
No puede llegar al anfitrión
|
No hay respuesta, la aplicación no envía un mensaje de banner
|
Puede o no ser capaz de llegar al huésped
|
tcplisten.pl
# tcplisten.pl begins here
# # Versión 1.00 10-07-30 # Este guión ha sido probado en # Abrir VOS 17.0.2ah ejecutando Perl v5.8.0 construido para i686-vos # Microsoft Windows XP Service Pack 3 funcionando # ActiveState Perl v5.10.0 construido para MSWin32-x86-multi-hilo # Red Hat Linux 4AS-5.5 funcionando # Perl v5.8.5 construido para x86_64-linux-thread-multi # # use IO::Socket; usa Getopt::Long; usa Sys::Nombre de host; ...usar estrictamente; mi ($resultado); mi ($localPort, $message, $peerAddr); mi ($newSock, $data); $resultado = GetOptions ('port=s' => $localPort, (message=s' => $message); si (($resultado != 1) || !(definido($localPort)) { Imprime "nnUsage:n"; imprimir "tperl tcplisten.pl -port PORT-NUMBER [-mensaje MENSAJE]nn"; salida; } si (!definido ($mensaje)) { imprimir "No se ha especificado ningún mensaje - creación de un mensaje"; $message = "Conexión aceptada por tcplisten ejecutándose en " . nombre de host; } imprimir "perl tcplisten.pl -port $localPort -message '" . $message . "“‘n”; mi calcetín = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $localPort, Dir. Local => '0.0.0.0', Escucha => 1, ) o morir "No se pudo crear un enchufe para el puerto $localPort: $!n"; mientras que (1) { mi $newSock = $sock->aceptar (); Imprimir "Conectado aceptado desde". $newSock->peerhost. "en" . hora local () . "“n”; imprimir $newSock $message . "“n”; $newSock -> apagado(2); $sock->read($data, 1024); # espera para obtener una indicación cercana */ $newSock->close(); } # # tcplisten.pl termina aquí |
tuc.pl
# tuc.pl begins here
# # Versión 1.00 10-07-30 # Este guión ha sido probado en # Abrir VOS 17.0.2ah ejecutando Perl v5.8.0 construido para i686-vos # Microsoft Windows XP Service Pack 3 funcionando # ActiveState Perl v5.10.0 construido para MSWin32-x86-multi-hilo # Red Hat Linux 4AS-5.5 funcionando # Perl v5.8.5 construido para x86_64-linux-thread-multi # # use IO::Socket; use IO::Select; usa Getopt::Long; ...usar estrictamente; mi ($resultado); mi ($destIP, $destPort, $timeout, $resultado, $mensaje, $banderas); mi ($ready, $socket); mi ($x, $c, $icmp Ya); $resultado = GetOptions ('ip=s' => $destIP, 'port=s' => $destPort, (timeout=s' => $timeout); si (($resultado != 1) || !(definido($destIP) && definido($destPort)) { Imprime "nnUsage:n"; imprimir "tperl tuc.pl -ip DESTINO-IP-ADDRESS" . "-DEPARTAMENTO DE DESTINO-PUERTO-NUMBERN"; salida; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print "OK, but " . $timeout . "parece irrazonablemente largo.n"; } $message = "enviado por tuc.pl a " . hora local (); mi calcetín = IO::Socket::INET->new( Proto => 'udp', PeerPort => $destPort, PeerAddr => $destIP ) o morir "No se pudo crear un enchufe para el destino $destIP: $!n"; mi $isock = IO::Socket::INET->new( Proto => 'icmp'); $sock->enviar($message) o morir "Enviar error: $!n"; $message = ""; mi $read_set = nuevo IO::Select(); $read_set->add($sock); $read_set->add($isock); ($ready) = IO::Select->select($read_set, undef, undef, $timeout); $icmp Ya = 0; $c = 0; foreach $socket (@$ready) { $c = $c + 1; si ($socket == $sock) { $x = "Respuesta recibida en el enchufe UDP de "; $socket->recv($message, 100, $flags); si ($icmpAlready == 0) { si (longitud ($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } else # icmp message received { $icmp Ya = 1; $socket->recv($message, 100, $flags); si (longitud ($message) > 98) { print "Inesperadamente largo (" . longitud ($mensaje) . ") Mensaje ICMP de " . $socket->peerhost . "Mensaje": " . $mensaje . "“n”; } elsif (length ($message) < 52) { print "Inexactamente corto (" . longitud ($mensaje) . ") Mensaje ICMP de " . $socket->peerhost . "“n”; } else # process icmp message { mi $tipo = ord (substr ($mensaje, 20, 1)); mi $código = ord (substr ($message, 21, 1)); mi $port = ord (substr ($message, 50, 1)) * 256 + ord (substr ($message, 51, 1)); si ($port != $destPort) { print "Mensaje ICMP inesperado recibido de " . $socket->peerhost . " mensaje : " . substr ($message, 20) . "“n”; } else # icmp message is good { si ($tipo == 3) { if ($code == 0) { print "ICMP Red de destino " . "mensaje inalcanzable recibido de" . $socket->peerhost . "“n”; } elsif ($code == 1) { print "ICMP Destination host " . "mensaje inalcanzable recibido de" . $socket->peerhost . "“n”; } elsif ($code == 3) { print "ICMP Puerto de destino " . "mensaje inalcanzable recibido de" . $socket->peerhost . "“n”; } elsif ($code == 6) { print "ICMP Red de destino " . "mensaje desconocido recibido de". $socket->peerhost . "“n”; } elsif ($code == 7) { print "ICMP Destination host unknown " . "Mensaje recibido de". $socket->peerhost. "“n”; } elsif ($code == 8) { print "ICMP Host de origen aislado " . "mensaje recibido de". $socket->peerhost . "“n”; } elsif ($code == 9) { print "ICMP Network administratively " . "mensaje prohibido recibido de". $socket->peerhost . "“n”; } elsif ($code == 10) { print "ICMP Host administratively " . "mensaje prohibido recibido de". $socket->peerhost . "“n”; } elsif ($code == 11) { print "Red ICMP inalcanzable para " . "Mensaje TOS recibido de". $socket->peerhost . "“n”; } elsif ($code == 12) { print "ICMP Host unreachable for " . "Mensaje TOS recibido de". $socket->peerhost . "“n”; } elsif ($code == 13) { print "Comunicación ICMP " . "mensaje administrativamente prohibido recibido de". $socket->peerhost . "“n”; } else { print "Mensaje ICMP inesperado recibido tipo = " . $tipo . ", código = " . $código . " de " . $socket->peerhost . "“n”; } } # si ($tipo == 3) elsif (($tipo == 11) & ($código == 0)) { print "Tiempo ICMP excedido , TTL expirado en tránsito " . "Mensaje recibido de". $socket->peerhost. "“n”; } else { print "Mensaje ICMP inesperado recibido tipo = " . $tipo . ", código = " . $código . " de " . $socket->peerhost . "“n”; } } # Más # El mensaje del ICMP es bueno } # else # process icmp message } # más # mensaje recibido de la 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 10-07-30 # Este guión ha sido probado en # Abrir VOS 17.0.2ah ejecutando Perl v5.8.0 construido para i686-vos # Microsoft Windows XP Service Pack 3 funcionando # ActiveState Perl v5.10.0 construido para MSWin32-x86-multi-hilo # Red Hat Linux 4AS-5.5 funcionando # Perl v5.8.5 construido para x86_64-linux-thread-multi # # use IO::Socket; use IO::Select; usa Getopt::Long; ...usar estrictamente; mi ($resultado); mi ($localPort, $debug, $resultado, $mensaje, $banderas); mi ($ready, $socket); mi ($x, $c); $resultado = GetOptions ('port=s' => $localPort, 'debug' => $debug); si (($resultado != 1) || !(definido($localPort)) { Imprime "nnUsage:n"; imprimir "tperl udpecho.pl -port LOCAL-PORT-NUMBER [-debug]nn"; salida; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } mi calcetín = IO::Socket::INET->new( Proto => 'udp', LocalPort => $localPort ) o morir "No pudo crear el enchufe $!n"; mi $read_set = nuevo IO::Select(); $read_set->add($sock); $message = ""; mientras que (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("echo por udpecho.pl: " . $message) o morir "Send error: $! +n”; } } # # udpecho.pl termina aquí |