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. |
Messaggio
|
Significato
|
---|---|
Collegato (con banner)
|
Può raggiungere l'host e l'applicazione
|
Collegato (senza banner)
|
Può raggiungere l'host e l'applicazione - probabilmente
|
Rifiutato
|
Può raggiungere l'host ma non l'applicazione - probabilmente
|
Raggiungibile
|
Impossibile raggiungere l'host
|
Timeout
|
Impossibile raggiungere l'host - probabilmente
|
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 |
Messaggio
|
Significato
|
---|---|
Applicazione messaggio banner
|
Può raggiungere l'host e l'applicazione
|
Rete ICMP/messaggio host
|
Impossibile raggiungere l'host
|
Messaggio della porta ICMP dall'host
|
Può raggiungere l'host ma non l'applicazione
|
Nessuna risposta, l'applicazione invia un messaggio banner
|
Impossibile raggiungere l'host
|
Nessuna risposta, l'applicazione non invia il messaggio del banner
|
Può o non può essere in grado di raggiungere l'host
|
tcplisten.pl
# tcplisten.pl begins here
# # Versione 1.00 10-07-30 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 costruito per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 costruito per MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 in esecuzione # Perl v5.8.5 costruito per x86_64-linux-thread-multi # # utilizzare IO::Socket; utilizzare Getopt::Long; utilizzare Sys::Hostname; usare il rigoroso; mio (risultato di $); my ($localPort, $messaggio, $peerAddr); mio ($newSock, $data); $result = GetOptions ('port=s' => $localPort, message=s' => $message); se (($risultato != 1) ||| !(definito($localPort))) { stampa "nnUsage:n"; stampa "tperl tcplisten.pl -port PORT-NUMBER [-messaggio MESSAGGIO]nn"; uscire; } se (!definito (messaggio di $)) { stampare "Nessun messaggio specificato - creazione di messagen"; $messaggio = "Connessione accettata da tcplisten in esecuzione su " . hostname; } stampa "perl tcplisten.pl -port $localPort -messaggio '" . $messaggio . "“‘n”; il mio $sock = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $localPort, LocalAddr => '0.0.0.0.0', Ascolta => 1, ) o morire "Impossibile creare presa per porta $localPort: $!n"; mentre (1) { my $newSock = $sock->accetta (); stampa "Connesso accettato da " . $newSock->peerhost . " a " . ora locale () . "“n”; stampa $newSock $messaggio . "“n”; $newSock -> spegnimento(2); $sock->read($data, 1024); # aspetta di avere un'indicazione di chiusura */ $newSock->close(); } # # tcplisten.pl finisce qui |
tuc.pl
# tuc.pl begins here
# # Versione 1.00 10-07-30 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 costruito per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 costruito per MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 in esecuzione # Perl v5.8.5 costruito per x86_64-linux-thread-multi # # utilizzare IO::Socket; utilizzare IO::Selezionare; utilizzare Getopt::Long; usare il rigoroso; mio (risultato di $); my ($destIP, $destPort, $timeout, $risultato, $messaggio, $bandiere); mio ($ready, $socket); mio ($x, $c, $icmpAlready); $result = OttieniOpzioni ('ip=s' => $destIP, port=s' => $destPort, timeout=s' => $timeout); se (($risultato != 1) ||| !(definito($destIP) && definito($destPort)))) { stampa "nnUsage:n"; stampa "tperl tuc.pl -ip DESTINAZIONE-IP-ADDRESS " . "-porto DESTINAZIONE-PORTO-NUMBERNO"; uscire; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print "OK, ma " . $timeout . "sembra irragionevolmente lungo.n"; } $messaggio = "inviato da tuc.pl a " . localtime (); il mio $sock = IO::Socket::INET->new( Proto => 'udp', PeerPort => $destPort, PeerAddr => $destIP ) o morire "Impossibile creare presa per destinazione $destIP: $!n"; my $isock = IO::Presa::INET->new( Proto => 'icmp'); $sock->send($messaggio) o morire "Invia errore: $!n"; $messaggio = ""; my $read_set = nuovo IO::Select(); $read_set->add($sock); $read_set->add($isock); ($ready) = IO::Select->select($read_set, undef, undef, undef, $timeout); $icmpAlready = 0; $c = 0; foreach $socket (@$ready) { $c = $c + 1; se ($socket == $sock) { $x = "Risposta ricevuta sulla presa UDP da"; $socket->recv($messaggio, 100, $bandiere); se ($icmpAlready == 0) { se (lunghezza ($messaggio) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } altro # messaggio icmp ricevuto { $icmpAlready = 1; $socket->recv($messaggio, 100, $bandiere); se (lunghezza ($messaggio) > 98) { print "Unexpectedly long (" . length ($message) . ") Messaggio ICMP da " . $socket->peerhost . "messaggio": . messaggio: " . $messaggio . "“n”; } elsif (length ($message) < 52) { print "Unexpecedly short (" . length ($message) . ") Messaggio ICMP da " . $socket->peerhost . "“n”; } altro # elabora il messaggio icmp { my $type = ord (substrato ($messaggio, 20, 1)); my $code = ord (substr ($messaggio, 21, 1)); my $port = ord (substrato ($messaggio, 50, 1)) * 256 + ord (substrato ($messaggio, 51, 1)); se ($port != $destPort) { print "Unexpected ICMP message received from " . $socket->peerhost . "messaggio : " . substr ($messaggio, 20) . "“n”; } altrimenti il messaggio icmp è buono { se ($type == 3) { if ($code == 0) { print "ICMP Destination network " . "messaggio irraggiungibile ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 1) { print "ICMP Destination host " . "messaggio irraggiungibile ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 3) { print "ICMP Destination port " . "messaggio irraggiungibile ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 6) { print "ICMP Destination network " . "messaggio sconosciuto ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 7) { print "ICMP Destination host unknown " . "messaggio ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 8) { print "ICMP Source host isolated " . "messaggio ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 9) { print "ICMP Network administratively " . "messaggio proibito ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 10) { print "ICMP Host administratively " . "messaggio proibito ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 11) { print "ICMP Network unreachable for " . "Messaggio TOS ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 12) { print "ICMP Host unreachable for " . "Messaggio TOS ricevuto da" . $socket->peerhost . "“n”; } elsif ($code == 13) { print "ICMP Communication " . "Messaggio vietato dal punto di vista amministrativo ricevuto da" . $socket->peerhost . "“n”; } else { print "Unexpected ICMP message received type = " . Tipo $ . ", codice = " . $codice . " da " . $socket->peerhost . "“n”; } } # se ($type == 3) elsif (($type == 11) & ($code == 0)) { print "ICMP Time exceeded , TTL expired in transit " . "messaggio ricevuto da" . $socket->peerhost . "“n”; } else { print "Unexpected ICMP message received type = " . Tipo $ . ", codice = " . $codice . " da " . $socket->peerhost . "“n”; } } # altrimenti il messaggio icmp è buono } # Altrimenti, elabora il messaggio icmp } #altro # messaggio icmp ricevuto } # foreach $socket (@$ready) if ($c == 0) { print "Nessuna risposta è stata ricevuta da " . $sock->peerhost . "“n”; } # # tuc.pl finisce qui |
udpecho.pl
# udpecho.pl begins here
# # Versione 1.00 10-07-30 # Questo script è stato testato su # Open VOS 17.0.2ah con Perl v5.8.0 costruito per i686-vos # Microsoft Windows XP Service Pack 3 in esecuzione # ActiveState Perl v5.10.0 costruito per MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 in esecuzione # Perl v5.8.5 costruito per x86_64-linux-thread-multi # # utilizzare IO::Socket; utilizzare IO::Selezionare; utilizzare Getopt::Long; usare il rigoroso; mio (risultato di $); my ($localPort, $debug, $risultato, $messaggio, $bandiere); mio ($ready, $socket); mio ($x, $c); $result = GetOptions ('port=s' => $localPort, debug => $debug); se (($risultato != 1) ||| !(definito($localPort))) { stampa "nnUsage:n"; stampa "tperl udpecho.pl -port LOCAL-PORT-NUMBER [-debug]nn"; uscire; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } il mio $sock = IO::Socket::INET->new( Proto => 'udp', LocalPort => $localPort ) o morire "Impossibile creare presa $!n"; my $read_set = nuovo IO::Select(); $read_set->add($sock); $messaggio = ""; mentre (1) { ($ready) = IO::Select->select($read_set, undef, undef, undef, 300); foreach $socket (@$ready) { $socket->recv($messaggio, 100, $bandiere); if (defined ($debug))) { print "Messaggio da " . $socket->peerhost . "messaggio": . messaggio: " . $messaggio . "“n”; } $socket->send("echoed by udpecho.pl: " . $messaggio) o die "Send error: $! +n”; } } # # udpecho.pl finisce qui |