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. |
Message
|
Signification
|
---|---|
Connecté (avec bannière)
|
Peut atteindre l'hôte et l'application
|
Connecté (pas de bannière)
|
Peut atteindre l'hôte et l'application - probablement
|
Refus
|
Peut atteindre l'hôte mais pas la demande - probablement
|
Injoignable
|
Impossible de joindre l'hôte
|
Timeout
|
Impossible d'atteindre l'hôte - probablement
|
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 |
Message
|
Signification
|
---|---|
Message de la bannière de candidature
|
Peut atteindre l'hôte et l'application
|
Message réseau/hôte de l'ICMP
|
Impossible de joindre l'hôte
|
Message du port ICMP de l'hôte
|
Peut atteindre l'hôte mais pas la candidature
|
Pas de réponse, l'application envoie un message de bannière
|
Impossible de joindre l'hôte
|
Pas de réponse, l'application n'envoie pas de message de bannière
|
Peut ou non être en mesure de joindre l'hôte
|
tcplisten.pl
# tcplisten.pl begins here
# # Version 1.00 10-07-30 # Ce script a été testé sur # Open VOS 17.0.2ah fonctionnant avec Perl v5.8.0 construit pour i686-vos # Microsoft Windows XP Service Pack 3 en cours d'exécution # ActiveState Perl v5.10.0 conçu pour MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 en cours d'exécution # Perl v5.8.5 construit pour x86_64-linux-thread-multi # # utiliser IO::Socket ; utilisez Getopt::Long ; utiliser Sys::Hostname ; utilisation stricte ; mon ($résultat) ; my ($localPort, $message, $peerAddr) ; mon ($newSock, $data) ; $result = GetOptions ('port=s' => $localPort, message=s' => $message) ; if (($result != 1) || !(defined($localPort)) { imprimer "nnUsage:n" ; imprimer "tperl tcplisten.pl -port PORT-NUMBER [-message MESSAGE]nn" ; sortie ; } si (!défini ($message)) { imprimer "Aucun message spécifié - création de messagen" ; $message = "Connexion acceptée par tcplisten fonctionnant sur " . nom d'hôte ; } print "perl tcplisten.pl -port $localPort -message '" . $message . "“‘n” ; my $sock = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $localPort, LocalAddr => "0.0.0.0", Écoute => 1, ) ou mourir "Impossible de créer une socket pour le port $localPort : $!n" ; alors que (1) { mon $newSock = $sock->accepter () ; print "Connected accepté de " . $newSock->peerhost . " à " . heure locale ( ) . "“n” ; imprimer $newSock $message . "“n” ; $newSock -> shutdown(2) ; $sock->read($data, 1024) ; # attendre pour avoir une indication précise */ $newSock->close() ; } # # tcplisten.pl s'arrête ici |
tuc.pl
# tuc.pl begins here
# # Version 1.00 10-07-30 # Ce script a été testé sur # Open VOS 17.0.2ah fonctionnant avec Perl v5.8.0 construit pour i686-vos # Microsoft Windows XP Service Pack 3 en cours d'exécution # ActiveState Perl v5.10.0 conçu pour MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 en cours d'exécution # Perl v5.8.5 construit pour x86_64-linux-thread-multi # # utiliser IO::Socket ; utiliser IO::Select ; utilisez Getopt::Long ; utilisation stricte ; mon ($résultat) ; my ($destIP, $destPort, $timeout, $result, $message, $flags) ; mon ($ready, $socket) ; my ($x, $c, $icmpAlready) ; $result = GetOptions ('ip=s' => $destIP, Port=s' => $destPort, timeout=s' => $timeout) ; if (($result != 1) || !(defined($destIP) && defined($destPort)) { imprimer "nnUsage:n" ; imprimer "tperl tuc.pl -ip DESTINATION-IP-ADDRESS " . "-port DESTINATION-PORT-NUMBERN" ; sortie ; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print "OK, mais " . $timeout . " semble déraisonnablement long.n" ; } $message = "envoyé par tuc.pl à " . heure locale () ; my $sock = IO::Socket::INET->new( Proto => "udp", PeerPort => $destPort, PeerAddr => $destIP ) ou mourir "Impossible de créer une socket pour la destination $destIP : $!n" ; my $isock = IO::Socket::INET->new( Proto => 'icmp') ; $sock->send($message) ou die "Send error : $!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 = "Réponse reçue sur la socket UDP de " ; $socket->recv($message, 100, $flags) ; si ($icmpAlready == 0) { si (longueur ($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } autre # message icmp reçu { $icmpAlready = 1 ; $socket->recv($message, 100, $flags) ; si (longueur ($message) > 98) { print "Unexpectedly long (" . length ($message) . ") Message de l'ICMP provenant de " . $socket->peerhost . Le message " : " ...message . "“n” ; } elsif (length ($message) < 52) { print "Unexpecedly short (" . length ($message) . ") Message de l'ICMP provenant de " . $socket->peerhost . "“n” ; } else # process icmp message { my $type = ord (substr ($message, 20, 1)) ; mon $code = ord (substr ($message, 21, 1)) ; my $port = ord (substr ($message, 50, 1)) * 256 + ord (substr ($message, 51, 1)) ; si ($port != $destPort) { print "Unxpected ICMP message received from " . $socket->peerhost . " message : " . substr ($message, 20) . "“n” ; } else # le message de l'icmp est bon { si ($type == 3) { if ($code == 0) { print "ICMP Destination network " . "message injoignable reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 1) { print "ICMP Destination host " . "message injoignable reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 3) { print "ICMP Destination port " . "message injoignable reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 6) { print "ICMP Destination network " . "message inconnu reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 7) { print "ICMP Destination host unknown " . "message reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 8) { print "ICMP Source host isolated " . "message reçu de" . $socket->peerhost . "“n” ; } elsif ($code == 9) { print "ICMP Network administratively " . "message interdit reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 10) { print "ICMP Host administratively " . "message interdit reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 11) { print "ICMP Network unreachable for " . "Message TOS reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 12) { print "ICMP Host unreachable for " . "Message TOS reçu de " . $socket->peerhost . "“n” ; } elsif ($code == 13) { print "Communication ICMP " . "message interdit administrativement reçu de " . $socket->peerhost . "“n” ; } else { print "Unxpected ICMP message received type = " . $type . ", code = " . $code . " de " . $socket->peerhost . "“n” ; } } # si ($type == 3) elsif (($type == 11) & ($code == 0)) { print "ICMP Time exceeded , TTL expired in transit " . "message reçu de " . $socket->peerhost . "“n” ; } else { print "Unxpected ICMP message received type = " . $type . ", code = " . $code . " de " . $socket->peerhost . "“n” ; } } # else # icmp message is good } # else # process icmp message } # else #icmp message received } # foreach $socket (@$ready) if ($c == 0) { print "Aucune réponse n'a été reçue de " . $sock->peerhost . "“n” ; } # # tuc.pl s'arrête ici |
udpecho.pl
# udpecho.pl begins here
# # Version 1.00 10-07-30 # Ce script a été testé sur # Open VOS 17.0.2ah fonctionnant avec Perl v5.8.0 construit pour i686-vos # Microsoft Windows XP Service Pack 3 en cours d'exécution # ActiveState Perl v5.10.0 conçu pour MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 en cours d'exécution # Perl v5.8.5 construit pour x86_64-linux-thread-multi # # utiliser IO::Socket ; utiliser IO::Select ; utilisez Getopt::Long ; utilisation stricte ; mon ($résultat) ; my ($localPort, $debug, $result, $message, $flags) ; mon ($ready, $socket) ; mon ($x, $c) ; $result = GetOptions ('port=s' => $localPort, Débogage" => $debug) ; if (($result != 1) || !(defined($localPort)) { imprimer "nnUsage:n" ; imprimer "tperl udpecho.pl -port LOCAL-PORT-NUMBER [-debug]nn" ; sortie ; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => "udp", LocalPort => $localPort ) ou mourir "Impossible de créer une prise $!n" ; my $read_set = new IO::Select() ; $read_set->add($sock) ; $message = "" ; alors que (1) { ($ready) = IO::Select->select($read_set, undef, undef, 300) ; foreach $socket (@$ready) { $socket->recv($message, 100, $flags) ; if (defined ($debug)) { print "Message from " . $socket->peerhost . Le message " : " ...message . "“n” ; } $socket->send("echoed by udpecho.pl : " . $message) or die "Send error : $ ! +n” ; } } # # udpecho.pl s'arrête ici |