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
# tcplisten.pl begins here
# # 版本1.00 10-07-30 # 这个脚本已经在 # 打开VOS 17.0.2ah,运行i686-vos的Perl v5.8.0。 # Microsoft Windows XP Service Pack 3运行 # ActiveState Perl v5.10.0,适用于MSWin32-x86多线程。 # Red Hat Linux 4AS-5.5运行。 # #Perl v5.8.5,为x86_64-linux-thread-multi而建。 # # 使用IO::Socket。 使用 Getopt::Long。 使用Sys::Hostname。 严格使用。 我的($result)。 我的 ($localPort, $message, $peerAddr); 我的($newSock, $data)。 $result = GetOptions ('port=s' => $localPort, 'message=s' => $message)。 如果(($result !=1) || !(定义($localPort))) { print "nnUsage:n"。 print "tperl tcplisten.pl -port PORT-NUMBER [-message MESSAGE]nn"。 退出。 } 如果(!定义($message)) { print "No message specified - creating messagen"。 $message = "tcplisten运行在"上的连接已被接受。 } print "perl tcplisten.pl -port $localPort -message '" 。$message ."“‘n”; my $sock = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $localPort, LocalAddr => '0.0.0.0'。 听 => 1, )或die "Could not create socket for port $localPort: $!n"; 而(1) { 我的$newSock = $sock->accept (); print "Connected accepted from " . $newSock->peerhost . "在".localtime() ."“n”; print $newSock $message ."“n”; $newSock -> shutdown(2); $sock->read($data, 1024); # 等待获得关闭指示 */。 $newSock->close()。 } # # tcplisten.pl 到此为止。 |
tuc.pl
# tuc.pl begins here
# # 版本1.00 10-07-30 # 这个脚本已经在 # 打开VOS 17.0.2ah,运行i686-vos的Perl v5.8.0。 # Microsoft Windows XP Service Pack 3运行 # ActiveState Perl v5.10.0,适用于MSWin32-x86多线程。 # Red Hat Linux 4AS-5.5运行。 # #Perl v5.8.5,为x86_64-linux-thread-multi而建。 # # 使用IO::Socket。 使用IO::Select。 使用 Getopt::Long。 严格使用。 我的($result)。 我的($destIP, $destPort, $timeout, $result, $message, $flags)。 我的($ready, $socket)。 我的($x, $c, $icmpAlready)。 $result = GetOptions ('ip=s' => $destIP, 'port=s' => $destPort, 'timeout=s' => $timeout)。 如果(($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 . "似乎不合理的长.n"; }。 $message = "由tuc.pl发送,时间为".localtime()。 my $sock = IO::Socket::INET->new( Proto => 'udp', PeerPort => $destPort, PeerAddr => $destIP )或die "Could not create socket for destination $destIP: $!n"; my $isock = IO::Socket::INET->new( Proto => 'icmp')。 $sock->send($message) or 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。 如果($socket == $sock) { $x = "在UDP套接字上收到来自"的回复。 $socket->recv($message, 100, $flags)。 如果 ($icmpAlready == 0) { 如果 (长度 ($message) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } 否则 # 收到ICMP信息 { $icmpAlready = 1; $socket->recv($message, 100, $flags)。 如果 (长度 ($message) > 98) { print "Unexpectedly long (" . length ($message) . ") 来自". $socket->peerhost"的ICMP消息。 "信息。". $message ."“n”; } elsif (length ($message) < 52) { print "短得不能再短(" . length ($message) . ") 来自". $socket->peerhost的ICMP消息 ."“n”; } 否则 # 处理icmp信息 { my $type = ord (substr ($message, 20, 1)); 我的$code = ord (substr ($message, 21, 1)); 我的$port = ord (substr ($message, 50, 1))* 256 + ord (substr ($message, 51, 1))。 如果($port !=$destPort) { print "收到来自" 的意外ICMP消息。 $socket->peerhost ." message : " . substr ($message, 20) . "“n”; } 否则 # icmp信息是好的 { 如果 ($type == 3) { if ($code == 0) { print "ICMP Destination network " . "收到来自"的无法联系的信息"。 $socket->peerhost ."“n”; } elsif ($code == 1) { print "ICMP Destination host " . "收到来自"的无法联系的信息"。 $socket->peerhost ."“n”; } elsif ($code == 3) { print "ICMP 目标端口 " . "收到来自"的无法联系的信息"。 $socket->peerhost ."“n”; } elsif ($code == 6) { print "ICMP Destination network " . "收到来自"的未知信息。 $socket->peerhost ."“n”; } elsif ($code == 7) { print "ICMP Destination host unknown " . "收到来自" . $socket->peerhost ."“n”; } elsif ($code == 8) { print "ICMP Source host isolated " . "收到的信息来自" . $socket->peerhost ."“n”; } elsif ($code == 9) { print "ICMP网络管理" . "收到来自"的违禁信息。 $socket->peerhost ."“n”; } elsif ($code == 10) { print "ICMP Host administratively " . "收到来自"的违禁信息。 $socket->peerhost ."“n”; } elsif ($code == 11) { print "ICMP Network unreachable for " . "收到来自"的TOS信息。 $socket->peerhost ."“n”; } elsif ($code == 12) { print "ICMP Host unreachable for " . "收到来自"的TOS信息。 $socket->peerhost ."“n”; } elsif ($code == 13) { print "ICMP Communication " . "从"收到"管理上禁止的信息"。 $socket->peerhost ."“n”; } else { print "收到的意外ICMP消息类型 = " . $type .", 代码 = ". $code ."从" . $socket->peerhost ."“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 ."从" . $socket->peerhost ."“n”; } }# else # icmp message is good }# else # 处理icmp信息 }# else #icmp消息已收到 }# foreach $socket (@$ready) if ($c == 0) { print "没有收到来自" . $sock->peerhost ."“n”; } # # tuc.pl 到此为止 |
udpecho.pl
# udpecho.pl begins here
# # 版本1.00 10-07-30 # 这个脚本已经在 # 打开VOS 17.0.2ah,运行i686-vos的Perl v5.8.0。 # Microsoft Windows XP Service Pack 3运行 # ActiveState Perl v5.10.0,适用于MSWin32-x86多线程。 # Red Hat Linux 4AS-5.5运行。 # #Perl v5.8.5,为x86_64-linux-thread-multi而建。 # # 使用IO::Socket。 使用IO::Select。 使用 Getopt::Long。 严格使用。 我的($result)。 我的($localPort, $debug, $result, $message, $flags)。 我的($ready, $socket)。 我的($x, $c); $result = GetOptions ('port=s' => $localPort, 'debug' => $debug)。 如果(($result !=1) || !(定义($localPort))) { 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 => $localPort )或死于"无法创建套接字$!n"。 my $read_set = new IO::Select(); $read_set->add($sock)。 $message = ""; 而(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 . "信息。". $message ."“n”; } $socket->send("echoed by udpecho.pl: " . $message) or die "Send error: $! +n”; } } # # udpecho.pl 到此为止 |