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. |
|
Nachricht
|
Bedeutung
|
|---|---|
|
Verbunden (mit Banner)
|
Kann Host und Anwendung erreichen
|
|
Verbunden (kein Banner)
|
Kann Host und Anwendung erreichen – wahrscheinlich
|
|
Abgelehnt
|
Host erreichbar, aber Anwendung nicht – wahrscheinlich
|
|
Nicht erreichbar
|
Host kann nicht erreicht werden
|
|
Zeitüberschreitung
|
Host kann nicht erreicht werden – wahrscheinlich
|
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 |
|
Nachricht
|
Bedeutung
|
|---|---|
|
Anwendungsbanner-Meldung
|
Kann Host und Anwendung erreichen
|
|
ICMP-Netzwerk-/Host-Meldung
|
Host kann nicht erreicht werden
|
|
ICMP-Port-Nachricht vom Host
|
Host kann erreicht werden, Anwendung jedoch nicht
|
|
Keine Antwort, Anwendung sendet Banner-Meldung
|
Host kann nicht erreicht werden
|
|
Keine Antwort, Anwendung sendet keine Banner-Nachricht
|
Möglicherweise kann der Host erreicht werden oder auch nicht.
|
tcplisten.pl
# tcplisten.pl begins here
# # Version 1.00 30.07.2010 # Dieses Skript wurde getestet auf # Öffnen Sie VOS 17.0.2ah mit Perl v5.8.0, erstellt für i686-vos. # Microsoft Windows XP Service Pack 3 läuft # ActiveState Perl v5.10.0, entwickelt für MSWin32-x86-Multi-Thread # Red Hat 4AS-5.5 läuft # Perl v5.8.5, kompiliert für x86_64-linux-thread-multi # #stratus # IO::Socket verwenden; use Getopt::Long; Sys::Hostname verwenden; use strict; my ($result); my ($localPort, $message, $peerAddr); my ($newSock, $data); $result = GetOptions ('port=s' => $localPort, 'message=s' => $message); if (($result != 1) || !(defined($localPort))) { print „nnVerwendung:n“; print „tperl tcplisten.pl -port PORT-NUMBER [-message MESSAGE]nn”; Beenden; } if (!defined ($message)) { print „Keine Nachricht angegeben – Nachricht erstellen“; $message = „Verbindung akzeptiert von tcplisten, ausgeführt auf “ . hostname; } print „perl tcplisten.pl -port $localPort -message ‘” . $message . “‘n”; my $sock = IO::Socket::INET->new( Proto => „tcp“, LocalPort => $localPort, LocalAddr => '0.0.0.0', Hören => 1, ) oder sterben „Socket für Port $localPort konnte nicht erstellt werden: $!n”; während (1) { my $newSock = $sock->accept (); print „Verbindung akzeptiert von “ . $newSock->peerhost . „bei“ . localtime () . „n“; print $newSock $message . „n“; $newSock -> shutdown(2); $sock->read($data, 1024); # warten, bis ein Schließungshinweis vorliegt */ $newSock->close(); } # # tcplisten.pl endet hier |
tuc.pl
# tuc.pl begins here
# # Version 1.00 30.07.2010 # Dieses Skript wurde getestet auf # Öffnen Sie VOS 17.0.2ah mit Perl v5.8.0, erstellt für i686-vos. # Microsoft Windows XP Service Pack 3 läuft # ActiveState Perl v5.10.0, entwickelt für MSWin32-x86-Multi-Thread # Red Hat 4AS-5.5 läuft # Perl v5.8.5, kompiliert für x86_64-linux-thread-multi # #stratus # IO::Socket verwenden; IO::Select verwenden; use Getopt::Long; use strict; my ($result); my ($ZielIP, $ZielPort, $Zeitlimit, $Ergebnis, $Meldung, $Flags); my ($bereit, $Socket); my ($x, $c, $icmpAlready); $result = GetOptions ('ip=s' => $destIP, 'port=s' => $destPort, 'timeout=s' => $timeout); if (($result != 1) || !(defined($destIP) && defined($destPort))) { print „nnVerwendung:n“; print „tperl tuc.pl -ip ZIEL-IP-ADRESSE “ . „-port ZIELPORTNUMMERnn”; Beenden; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print „OK, aber “ . $timeout . „scheint unangemessen lang zu sein.n”; } $message = „gesendet von tuc.pl um “ . localtime (); my $sock = IO::Socket::INET->new( Proto => „udp“, PeerPort => $destPort, PeerAddr => $destIP ) oder sterben „Socket für Ziel $destIP konnte nicht erstellt werden: $!n”; my $isock = IO::Socket::INET->new( Proto => „icmp“); $sock->send($message) oder die „Sendefehler: $!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; if ($socket == $sock) { $x = „Antwort empfangen auf UDP-Socket von “; $socket->recv($message, 100, $flags); if ($icmpAlready == 0) { if (length($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } sonst # ICMP-Nachricht empfangen { $icmpAlready = 1; $socket->recv($message, 100, $flags); if (length ($message) > 98) { print „Unerwartet lang (“ . length ($message) . ICMP-Nachricht von „. $socket->peerhost . ” message: ” . $message . “n”; } elsif (length ($message) < 52) { print „Unerwartet kurz (“ . length ($message) . ") ICMP-Nachricht von " . $socket->peerhost . "n"; } sonst # ICMP-Nachricht verarbeiten { 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)); if ($port != $destPort) { print „Unerwartete ICMP-Nachricht empfangen von “ . $socket->peerhost . „Nachricht: “ . substr ($message, 20) . „n“; } sonst # icmp-Nachricht ist in Ordnung { if ($type == 3) { if ($code == 0) { print „ICMP Zielnetzwerk “ . „Unzustellbare Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 1) { print „ICMP-Zielhost “ . „Unzustellbare Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 3) { print „ICMP-Zielport “ . „Unzustellbare Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 6) { print „ICMP-Zielnetzwerk “ . „Unbekannte Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 7) { print „ICMP Zielhost unbekannt “ . „Nachricht empfangen von “ . $socket->peerhost . „n”; } elsif ($code == 8) { print „ICMP-Quellhost isoliert“ . „Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 9) { print „ICMP Netzwerk administrativ “ . „Verbotene Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 10) { print „ICMP Host administrativ ” . „Verbotene Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 11) { print „ICMP Netzwerk für ” nicht erreichbar. „TOS-Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 12) { print „ICMP Host unreachable for “ . „TOS-Nachricht empfangen von “. $socket->peerhost . „n”; } elsif ($code == 13) { print „ICMP-Kommunikation “ . „Verwaltungstechnisch gesperrte Nachricht empfangen von “. $socket->peerhost . „n”; } else { print „Unerwartete ICMP-Nachricht empfangen Typ = “ . $type . „, code = “ . $code . „von “ . $socket->peerhost . „n”; } } # wenn ($type == 3) elsif (($type == 11) & ($code == 0)) { print „ICMP-Zeitüberschreitung, TTL während der Übertragung abgelaufen“ . „Nachricht empfangen von “ . $socket->peerhost . „n”; } else { print „Unerwartete ICMP-Nachricht empfangen Typ = “ . $type . „, code = “ . $code . „von “ . $socket->peerhost . „n”; } } # sonst # icmp-Nachricht ist in Ordnung } # sonst # ICMP-Nachricht verarbeiten } # sonst #icmp-Nachricht empfangen } # foreach $socket (@$ready) if ($c == 0) { print „Keine Antwort von “ . $sock->peerhost . „n“; } # # tuc.pl endet hier |
udpecho.pl
# udpecho.pl begins here
# # Version 1.00 30.07.2010 # Dieses Skript wurde getestet auf # Öffnen Sie VOS 17.0.2ah mit Perl v5.8.0, erstellt für i686-vos. # Microsoft Windows XP Service Pack 3 läuft # ActiveState Perl v5.10.0, entwickelt für MSWin32-x86-Multi-Thread # Red Hat 4AS-5.5 läuft # Perl v5.8.5, kompiliert für x86_64-linux-thread-multi # #stratus # IO::Socket verwenden; IO::Select verwenden; use Getopt::Long; use strict; my ($result); my ($localPort, $debug, $result, $message, $flags); my ($bereit, $Socket); my ($x, $c); $result = GetOptions ('port=s' => $localPort, 'debug' => $debug); if (($result != 1) || !(defined($localPort))) { print „nnVerwendung:n“; print „tperl udpecho.pl -port LOCAL-PORT-NUMBER [-debug]nn”; Beenden; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => „udp“, LocalPort => $localPort ) oder sterben „Socket $!n konnte nicht erstellt werden”; my $read_set = new IO::Select(); $read_set->add($sock); $message = „“; während (1) { ($ready) = IO::Select->select($read_set, undef, undef, 300); foreach $socket (@$ready) { $socket->recv($message, 100, $flags); if (defined ($debug)) { print „Nachricht von ” . $socket->peerhost . ” message: ” . $message . “n”; } $socket->send(„echoed by udpecho.pl: ” . $message) or die „Send error: $! +n"; } } # # udpecho.pl endet hier |
