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. |
メッセージ
|
意味
|
---|---|
つながる(バナー付き
|
ホストとアプリケーションにアクセス可能
|
接続済み(バナーなし
|
ホストとアプリケーションに到達可能 - おそらく
|
拒否
|
ホストには到達できるが、アプリケーションには到達できない - おそらく
|
到達不可能
|
ホストに到達できない
|
タイムアウト
|
ホストに到達できない - おそらく
|
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 |
メッセージ
|
意味
|
---|---|
アプリケーションバナーメッセージ
|
ホストとアプリケーションにアクセス可能
|
ICMPネットワーク/ホストメッセージ
|
ホストに到達できない
|
ホストからのICMPポートメッセージ
|
ホストには到達できるが、アプリケーションには到達できない
|
応答がありません、アプリケーションはバナーメッセージを送信します
|
ホストに到達できない
|
応答がない、アプリケーションがバナーメッセージを送信しない
|
ホストに到達できないかもしれないし、できないかもしれない
|
ティーシープリステン
# tcplisten.pl begins here
# # Version 1.00 10-07-30 # このスクリプトは # i686-vos用にビルドされたPerl v5.8.0.0を実行しているVOS 17.0.2ahを開きます。 # MicrosoftWindows XP Service Pack 3 が稼働中 # MSWin32-x86-multi-thread用にビルドされたActiveState Perl v5.10.0 # Red HatLinux 4AS-5.5 を実行しています。 # Perl v5.8.8.5 は x86_64 用にビルドされています-linux-thread-multi # # IO::Socketを使用します。 Getopt::Longを使用します。 Sys::ホスト名を使用します。 厳密に使用してください。 私の($result)。 私の($localPort, $message, $peerAddr)を使用しています。 私の ($newSock, $data) を使用しています。 $result = GetOptions ('port=s' => $localPort. 'message=s' => $message). if (($result != 1) || ! { print "nnUsage:n"と表示されます。 print "tperl tcplisten.pl -port PORT-NUMBER [-message MESSAGE]nn". 出口に行きます。 } if (!defined ($message)) { print "メッセージが指定されていません。 $message = "Connection accepted by tcplisten running on " .hostname. } print "perl tcplisten.pl -port $localPort -message '" .メッセージ ."“‘n”; my $sock = IO::Socket::INET->new( Proto => 'tcp'。 LocalPort => $localPort。 LocalAddr => '0.0.0.0.0'. 聞く⇒1. ) or die "Could not create socket for port $localPort: $!n". の間 { 私の $newSock = $sock->accept ()。 print "Connected accepted accepted from " . $newSock->peerhost . " at " .localtime () ."“n”; print $newSock $message ."“n”; newSock -> shutdown(2)。 $sock->read($data, 1024); # 閉じているかどうかの表示を待つ */. newSock->close()。 } # # tcplisten.pl はここで終了です。 |
tuc.
# tuc.pl begins here
# # Version 1.00 10-07-30 # このスクリプトは # i686-vos用にビルドされたPerl v5.8.0.0を実行しているVOS 17.0.2ahを開きます。 # MicrosoftWindows XP Service Pack 3 が稼働中 # MSWin32-x86-multi-thread用にビルドされたActiveState Perl v5.10.0 # Red HatLinux 4AS-5.5 を実行しています。 # Perl v5.8.8.5 は x86_64 用にビルドされています-linux-thread-multi # # IO::Socketを使用します。 IO::Selectを使用します。 Getopt::Longを使用します。 厳密に使用してください。 私の($result)。 my ($destIP, $destPort, $timeout, $result, $message, $flags)。 my ($ready, $socket) を使用しています。 私の ($x, $c, $icmpAlready)。 $result = GetOptions ('ip=s' => $destIP. 'port=s' => $destPort. 'timeout=s' => $timeout)。 if (($result != 1) || !(defined($destIP) && defined($destPort)) { print "nnUsage:n"と表示されます。 print "tperl tuc.pl -ip DESTINATION-IP-ADDRESS " . "-port DESTINATION-PORT-NUMBERnn". 出口に行きます。 } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { print "OK, but " . $timeout . " seems unreasonable long.n"; }. メッセージ = "sented by tuc.pl at " .localtime (). my $sock = IO::Socket::INET->new( Proto => 'udp'. PeerPort => $destPort. PeerAddr => $destIP ) または die "Could not create socket for destination $destIP: $!n". 私の $isock = IO::Socket::INET->new( Proto => 'icmp')。 sock->send($message) または die "Send error: $!n". メッセージ = "". 私の $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 = "からUDPソケットで受信した応答"です。 ソケット->recv($message, 100, $flags)。 if ($icmpAlready == 0) { if (長さ ($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } else # icmpメッセージを受信しました { icmpAlready = 1. ソケット->recv($message, 100, $flags)。 if (長さ ($message) > 98) { print "予想外に長い (" . length ($message) . "からのICMPメッセージ " . $socket->peerhost . " メッセージ。" . $message ."“n”; } elsif (length ($message) < 52) { print "Unexpecedly short (" . length ($message) . ") からの ICMP メッセージ " . $socket->peerhost ."“n”; } else # icmpメッセージを処理する { 私の $type = ord (substr ($message, 20, 1))。 私の $code = ord (substr ($message, 21, 1))。 私の $port = ord (substr ($message, 50, 1))* 256 + ord (substr ($message, 51, 1))。 if ($port != $destPort) { print "Unexpected ICMP message received from " . ソケット->ピアホスト ." message : " . substr ($message, 20) . "“n”; } else # icmpメッセージは良好 { if ($type == 3) { if ($code == 0) { print "ICMP Destination network " . "から受信した到達不可能なメッセージ" ソケット->ピアホスト ."“n”; } elsif ($code == 1) { print "ICMP Destination host " . "から受信した到達不可能なメッセージ" ソケット->ピアホスト ."“n”; } elsif ($code == 3) { print "ICMP Destination port " . "から受信した到達不可能なメッセージ" ソケット->ピアホスト ."“n”; } elsif ($code == 6) { print "ICMP Destination network " . "不明なメッセージを受信しました" . ソケット->ピアホスト ."“n”; } elsif ($code == 7) { print "ICMP Destination host unknown " . "メッセージを受信しました" . $socket->peerhost ."“n”; } elsif ($code == 8) { print "ICMP Source host isolated " . "から受信したメッセージ" ソケット->ピアホスト ."“n”; } elsif ($code == 9) { print "ICMP Network administratively " . "からの禁止メッセージを受信しました。 ソケット->ピアホスト ."“n”; } elsif ($code == 10) { print "ICMP Host administratively " . "からの禁止メッセージを受信しました。 ソケット->ピアホスト ."“n”; } elsif ($code == 11) { print "ICMP Network unreachable for " . "からTOSメッセージを受信しました。 ソケット->ピアホスト ."“n”; } elsif ($code == 12) { print "ICMP Host unreachable for " . "からTOSメッセージを受信しました。 ソケット->ピアホスト ."“n”; } elsif ($code == 13) { print "ICMP 通信 " . " から受信した管理上禁止されているメッセージ ソケット->ピアホスト ."“n”; } else { print "受信した予期せぬICMPメッセージ type = " . タイプ .", code = " ."からの" . ソケット->ピアホスト ."“n”; } }# if ($type == 3) elsif (($type == 11) & ($code == 0) { print "ICMP Time exceeded , TTL expired in transit " . "メッセージを受信しました" . $socket->peerhost ."“n”; } else { print "受信した予期せぬICMPメッセージ type = " . タイプ .", code = " ."からの" . ソケット->ピアホスト ."“n”; } }else # else # icmp メッセージは良好です }else # else # icmpメッセージを処理する }# else #icmpメッセージを受信しました }# foreach $socket (@$ready) if ($c == 0) { print "No response was received from " . $sock->peerhost ."“n”; } # # tuc.plはここまで |
udpecho.pl
# udpecho.pl begins here
# # Version 1.00 10-07-30 # このスクリプトは # i686-vos用にビルドされたPerl v5.8.0.0を実行しているVOS 17.0.2ahを開きます。 # MicrosoftWindows XP Service Pack 3 が稼働中 # MSWin32-x86-multi-thread用にビルドされたActiveState Perl v5.10.0 # Red HatLinux 4AS-5.5 を実行しています。 # Perl v5.8.8.5 は x86_64 用にビルドされています-linux-thread-multi # # IO::Socketを使用します。 IO::Selectを使用します。 Getopt::Longを使用します。 厳密に使用してください。 私の($result)。 my ($localPort, $debug, $result, $message, $flags). my ($ready, $socket) を使用しています。 私の($x, $c)。 $result = GetOptions ('port=s' => $localPort. 'debug' => $debug)。 if (($result != 1) || ! { print "nnUsage:n"と表示されます。 print "tperl udpecho.pl -port LOCAL-PORT-NUMBER [-debug]nn". 出口に行きます。 } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => 'udp'. ローカルポート => $localPort ) または die "Could not create socket $!n". 私の $read_set = new IO::Select()。 read_set->add($sock). メッセージ = "". の間 { ($ready) = IO::Select->select($read_set, undef, undef, 300)。 foreach $socket (@$ready) { ソケット->recv($message, 100, $flags)。 if (defined ($debug)) { print "Message from " . $socket->peerhost . " メッセージ。" . $message ."“n”; } ソケット->send("echoed by udpecho.pl: " . $message) or die "Send error: $! +n”; } } # # udpecho.pl はここで終了します。 |