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. |
|
Messaggio
|
Significato
|
|---|---|
|
Connesso (con banner)
|
È possibile raggiungere l'host e l'applicazione
|
|
Connesso (senza banner)
|
È possibile raggiungere l'host e l'applicazione – probabilmente
|
|
Rifiutato
|
Riesco a collegarmi al server ma non all'applicazione – probabilmente
|
|
Irraggiungibile
|
Impossibile raggiungere l'host
|
|
Timeout
|
Impossibile raggiungere l'host – probabilmente
|
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 |
|
Messaggio
|
Significato
|
|---|---|
|
Messaggio del banner dell'applicazione
|
È possibile raggiungere l'host e l'applicazione
|
|
Messaggio ICMP di rete/host
|
Impossibile raggiungere l'host
|
|
Messaggio ICMP relativo alla porta proveniente dall'host
|
Riesco a raggiungere il server ma non l'applicazione
|
|
Nessuna risposta, l'applicazione invia un messaggio di avviso
|
Impossibile raggiungere l'host
|
|
Nessuna risposta, l'applicazione non invia il messaggio di avviso
|
Potrebbe essere possibile o meno raggiungere l'host
|
tcplisten.pl
# tcplisten.pl begins here
# # Versione 1.00 30-07-2010 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 compilato per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 compilato per MSWin32-x86-multi-thread # Red Hat 4AS-5.5 in esecuzione # Perl v5.8.5 compilato per x86_64-linux-thread-multi # #stratus # usa IO::Socket; use Getopt::Long; usa Sys::Hostname; use strict; my ($result); my ($localPort, $message, $peerAddr); my ($newSock, $data); $result = GetOptions (‘port=s’ => $localPort, ‘message=s’ => $message); se (($result != 1) || !(defined($localPort))) { stampa “nnUso:n”; stampa “tperl tcplisten.pl -port NUMERO-PORTA [-message MESSAGGIO]nn”; esci; } se (!defined($message)) { stampa “Nessun messaggio specificato – creazione del messaggio”; $message = “Connessione accettata da tcplisten in esecuzione su ” . hostname; } stampa “perl tcplisten.pl -port $localPort -message ‘” . $message . “‘n”; my $sock = IO::Socket::INET->new( Proto => ‘tcp’, LocalPort => $localPort, LocalAddr => ‘0.0.0.0’, Ascolta => 1, ) oppure "Impossibile creare il socket per la porta $localPort: $!n"; finché (1) { my $newSock = $sock->accept (); stampa “Connessione accettata da ” . $newSock->peerhost . ” a ” . localtime() . “n”; stampa $newSock $message . “n”; $newSock -> shutdown(2); $sock->read($data, 1024); # attendi l'indicazione di chiusura */ $newSock->close(); } # # tcplisten.pl finisce qui |
tuc.pl
# tuc.pl begins here
# # Versione 1.00 30-07-2010 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 compilato per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 compilato per MSWin32-x86-multi-thread # Red Hat 4AS-5.5 in esecuzione # Perl v5.8.5 compilato per x86_64-linux-thread-multi # #stratus # usa IO::Socket; usa 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); se (($result != 1) || !(defined($destIP) && defined($destPort))) { stampa “nnUso:n”; stampa “tperl tuc.pl -ip INDIRIZZO-IP-DI-DESTINAZIONE ” . “-porto NUMERO-DEL-PORTO-DI-DESTINAZIONE-nn”; esci; } if (!defined($timeout)) { $timeout = 5; } altrimenti (se $timeout > 15) { stampa “OK, ma ” . $timeout . ” sembra eccessivamente lungo.n”; } $message = “inviato da tuc.pl alle ” . localtime(); my $sock = IO::Socket::INET->new( Proto => ‘udp’, Porta di origine => $destPort, PeerAddr => $destIP ) oppure "Impossibile creare il socket per la destinazione $destIP: $!n"; my $isock = IO::Socket::INET->new( Proto => ‘icmp’); $sock->send($message) oppure die “Errore di invio: $!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; se ($socket == $sock) { $x = “Risposta ricevuta sul socket UDP da “; $socket->recv($message, 100, $flags); se ($icmpAlready == 0) { se (length($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } altrimenti # messaggio ICMP ricevuto { $icmpAlready = 1; $socket->recv($message, 100, $flags); se (length($message) > 98) { stampa “Inaspettatamente lungo (” . lunghezza($message) . “) Messaggio ICMP proveniente da ” . $socket->peerhost . "messaggio: " . $message . "\n"; } elsif (length ($message) < 52) { stampa “Inaspettatamente breve (” . lunghezza($message) . “) Messaggio ICMP proveniente da ” . $socket->peerhost . “n”; } altrimenti # elabora il messaggio 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)); se ($port != $destPort) { stampa “Messaggio ICMP inatteso ricevuto da ” . $socket->peerhost . ” messaggio: ” . substr($message, 20) . “n”; } altrimenti # il messaggio ICMP è corretto { se ($type == 3) { if ($code == 0) { print “Rete di destinazione ICMP ” . «Messaggio non recapitabile ricevuto da » . $socket->peerhost . “n”; } altrimenti ($code == 1) { stampa “ICMP Host di destinazione ” . «Messaggio non recapitabile ricevuto da » . $socket->peerhost . “n”; } altrimenti ($code == 3) { stampa “Porta di destinazione ICMP ” . «Messaggio non recapitabile ricevuto da » . $socket->peerhost . “n”; } altrimenti ($code == 6) { stampa “Rete di destinazione ICMP ” . «Messaggio sconosciuto ricevuto da » . $socket->peerhost . “n”; } altrimenti (se $code == 7) { stampa “ICMP: host di destinazione sconosciuto ” . “Messaggio ricevuto da ” . $socket->peerhost . “n”; } altrimenti (se $code == 8) { stampa “Host di origine ICMP isolato ” . “messaggio ricevuto da ” . $socket->peerhost . “n”; } altrimenti ($code == 9) { stampa “ICMP: rete bloccata per motivi amministrativi ” . «Messaggio non autorizzato ricevuto da » . $socket->peerhost . “n”; } altrimenti ($code == 10) { stampa “Host ICMP amministrativamente ” . «Messaggio non autorizzato ricevuto da » . $socket->peerhost . “n”; } altrimenti ($code == 11) { stampa “Rete ICMP non raggiungibile per ” . “Messaggio TOS ricevuto da ” . $socket->peerhost . “n”; } altrimenti (se $code == 12) { stampa “Host ICMP non raggiungibile per ” . “Messaggio TOS ricevuto da ” . $socket->peerhost . “n”; } altrimenti ($code == 13) { stampa “Comunicazione ICMP ” . «Messaggio con divieto amministrativo ricevuto da » . $socket->peerhost . “n”; } else { stampa “Ricevuto messaggio ICMP inatteso di tipo = ” . $type . “, codice = ” . $code . ” da ” . $socket->peerhost . “n”; } } # se ($type == 3) altrimenti se (($type == 11) e ($code == 0)) { stampa “Tempo ICMP scaduto, TTL scaduto durante il transito” . “Messaggio ricevuto da ” . $socket->peerhost . “n”; } else { stampa “Ricevuto messaggio ICMP inatteso di tipo = ” . $type . “, codice = ” . $code . ” da ” . $socket->peerhost . “n”; } } # altrimenti # il messaggio ICMP è corretto } # altrimenti # elabora il messaggio ICMP } # altrimenti # messaggio ICMP ricevuto } # foreach $socket (@$ready) if ($c == 0) { print “Non è stata ricevuta alcuna risposta da ” . $sock->peerhost . “n”; } # # tuc.pl finisce qui |
udpecho.pl
# udpecho.pl begins here
# # Versione 1.00 30-07-2010 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 compilato per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 compilato per MSWin32-x86-multi-thread # Red Hat 4AS-5.5 in esecuzione # Perl v5.8.5 compilato per x86_64-linux-thread-multi # #stratus # usa IO::Socket; usa 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); se (($result != 1) || !(defined($localPort))) { stampa “nnUso:n”; stampa “tperl udpecho.pl -port NUMERO-PORTA-LOCALE [-debug]nn”; esci; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => ‘udp’, LocalPort => $localPort ) oppure "Impossibile creare il socket $!n"; my $read_set = new IO::Select(); $read_set->add($sock); $message = “”; finché (1) { ($ready) = IO::Select->select($read_set, undef, undef, 300); foreach $socket (@$ready) { $socket->recv($message, 100, $flags); if (defined($debug)) { print “Messaggio da ” . $socket->peerhost . "messaggio: " . $message . "\n"; } $socket->send(“riprodotto da udpecho.pl: ” . $message) oppure die “Errore di invio: $!” +n”; } } # # udpecho.pl finisce qui |
