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. |
|
Mensagem
|
Significado
|
|---|---|
|
Conectado (com banner)
|
Pode acessar o host e o aplicativo
|
|
Conectado (sem banner)
|
Pode acessar o host e o aplicativo – provavelmente
|
|
Recusado
|
Consegue acessar o host, mas não o aplicativo – provavelmente
|
|
Inacessível
|
Não é possível acessar o host
|
|
Tempo limite
|
Não é possível acessar o host – provavelmente
|
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 |
|
Mensagem
|
Significado
|
|---|---|
|
Mensagem do banner do aplicativo
|
Pode acessar o host e o aplicativo
|
|
Mensagem de rede/host ICMP
|
Não é possível acessar o host
|
|
Mensagem da porta ICMP do host
|
Consegue acessar o host, mas não o aplicativo
|
|
Sem resposta, o aplicativo envia uma mensagem de banner
|
Não é possível acessar o host
|
|
Sem resposta, o aplicativo não envia mensagem de banner
|
Pode ou não ser possível acessar o host
|
tcplisten.pl
# tcplisten.pl begins here
# # Versão 1.00 30-07-2010 # Este script foi testado em # Abrir o VOS 17.0.2ah executando o Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP Service Pack 3 em execução # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 em execução # Perl v5.8.5 compilado para x86_64-linux-thread-multi # # use IO::Socket; use Getopt::Long; use Sys::Hostname; use strict; meu ($resultado); minha ($portaLocal, $mensagem, $endereçoDoParceiro); minha ($novaMeia, $dados); $result = GetOptions (‘port=s’ => $localPort, 'message=s' => $message); if (($resultado != 1) || !(definido($portaLocal))) { imprimir “nnUtilização:n”; imprimir “tperl tcplisten.pl -port NÚMERO-DA-PORTA [-message MENSAGEM]nn”; sair; } se (!definido ($mensagem)) { imprimir “Nenhuma mensagem especificada – criando mensagem”; $message = “Conexão aceita pelo tcplisten em execução em ” . hostname; } imprimir “perl tcplisten.pl -port $localPort -message ‘” . $message . “‘n”; my $sock = IO::Socket::INET->new( Proto => “tcp”, LocalPort => $localPort, LocalAddr => ‘0.0.0.0’, Ouvir => 1, ) ou morrer “Não foi possível criar soquete para a porta $localPort: $!n”; enquanto (1) { minha $novaMeia = $meia->aceitar(); imprimir “Conexão aceita de ” . $newSock->peerhost . ” em ” . localtime () . “n”; imprimir $newSock $mensagem . “n”; $newSock -> desligar(2); $sock->read($data, 1024); # aguarda até obter uma indicação próxima */ $newSock->close(); } # # tcplisten.pl termina aqui |
tuc.pl
# tuc.pl begins here
# # Versão 1.00 30-07-2010 # Este script foi testado em # Abrir o VOS 17.0.2ah executando o Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP Service Pack 3 em execução # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 em execução # Perl v5.8.5 compilado para x86_64-linux-thread-multi # # use IO::Socket; use IO::Select; use Getopt::Long; use strict; meu ($resultado); my ($destIP, $destPort, $timeout, $result, $message, $flags); my ($pronto, $soquete); my ($x, $c, $icmpJá); $result = GetOptions (‘ip=s’ => $destIP, 'port=s' => $destPort, 'timeout=s' => $timeout); if (($resultado != 1) || !(definido($destIP) && definido($destPort))) { imprimir “nnUtilização:n”; imprimir “tperl tuc.pl -ip ENDEREÇO-IP-DE-DESTINO ” . “-port DESTINO-NÚMERO-DA-PORTA”; sair; } if (!defined($timeout)) { $timeout = 5; } elsif ($timeout > 15) { imprimir “OK, mas ” . $timeout . ” parece excessivamente longo.n”; } $message = “enviado por tuc.pl às ” . localtime(); my $sock = IO::Socket::INET->new( Proto => ‘udp’, Porta do par => $destPort, PeerAddr => $destIP ) ou morrer “Não foi possível criar soquete para o destino $destIP: $!n”; meu $isock = IO::Socket::INET->new( Proto => 'icmp'); $sock->enviar($mensagem) ou morrer “Erro ao enviar: $!n”; $mensagem = “”; meu $read_set = novo IO::Select(); $read_set->adicionar($sock); $read_set->add($isock); ($pronto) = IO::Select->selecionar($conjunto_de_leitura, indefinido, indefinido, $tempo_limite); $icmpJá = 0; $c = 0; foreach $socket (@$pronto) { $c = $c + 1; se ($socket == $sock) { $x = “Resposta recebida no soquete UDP de “; $socket->recv($mensagem, 100, $flags); se ($icmpAlready == 0) { se (comprimento ($mensagem) > 0) { print $x . $socket->peerhost . ” message: ” . $message . “n”; } else { print $x . $socket->peerhost . “n”; } } } caso contrário # mensagem icmp recebida { $icmpJá = 1; $socket->recv($mensagem, 100, $flags); se (comprimento ($mensagem) > 98) { imprimir “Inesperadamente longo (” . comprimento ($mensagem) . “) Mensagem ICMP de ” . $socket->peerhost . mensagem: “. $mensagem . “n”; } elsif (length ($message) < 52) { imprimir “Inesperadamente curto (” . comprimento ($mensagem) . “) Mensagem ICMP de ” . $socket->peerhost . “n”; } caso contrário, processar mensagem icmp { meu $tipo = ord (substr ($mensagem, 20, 1)); meu $código = ord (substr ($mensagem, 21, 1)); my $port = ord (substr ($mensagem, 50, 1)) * 256 + ord (substr($mensagem, 51, 1)); se ($porta != $portaDestino) { imprimir “Mensagem ICMP inesperada recebida de ” . $socket->peerhost . "mensagem: " . substr($message, 20) . “n”; } caso contrário, a mensagem icmp está correta { se ($tipo == 3) { if ($code == 0) { print “Rede de destino ICMP ” . “mensagem inacessível recebida de ” . $socket->peerhost . “n”; } elsif ($code == 1) { imprimir “Host de destino ICMP ” . “mensagem inacessível recebida de ” . $socket->peerhost . “n”; } elsif ($code == 3) { imprimir “Porta de destino ICMP ” . “mensagem inacessível recebida de ” . $socket->peerhost . “n”; } elsif ($code == 6) { imprimir “Rede de destino ICMP ” . “mensagem desconhecida recebida de ” . $socket->peerhost . “n”; } elsif ($code == 7) { imprimir “ICMP Destino host desconhecido ” . “mensagem recebida de ” . $socket->peerhost . “n”; } elsif ($code == 8) { imprimir “Host de origem ICMP isolado ” . “mensagem recebida de ” . $socket->peerhost . “n”; } elsif ($code == 9) { print “ICMP Rede administrativamente ” . “mensagem proibida recebida de ” . $socket->peerhost . “n”; } elsif ($code == 10) { imprimir “ICMP Host administrativamente ” . “mensagem proibida recebida de ” . $socket->peerhost . “n”; } elsif ($code == 11) { print “Rede ICMP inacessível para ” . “Mensagem TOS recebida de ” . $socket->peerhost . “n”; } elsif ($code == 12) { print “Host ICMP inacessível para ” . “Mensagem TOS recebida de ” . $socket->peerhost . “n”; } elsif ($code == 13) { print “Comunicação ICMP ” . “mensagem administrativamente proibida recebida de ” . $socket->peerhost . “n”; } else { imprimir “Mensagem ICMP inesperada recebida tipo = ” . $tipo . “, código = ” . $código . ” de ” . $socket->peerhost . “n”; } } # se ($tipo == 3) elsif (($tipo == 11) & ($código == 0)) { imprimir “Tempo ICMP excedido, TTL expirou em trânsito”. “mensagem recebida de ” . $socket->peerhost . “n”; } else { imprimir “Mensagem ICMP inesperada recebida tipo = ” . $tipo . “, código = ” . $código . ” de ” . $socket->peerhost . “n”; } } # caso contrário # a mensagem icmp está correta } # else # processar mensagem icmp } # else #mensagem icmp recebida } # para cada $socket (@$pronto) if ($c == 0) { print “Nenhuma resposta foi recebida de ” . $sock->peerhost . “n”; } # # tuc.pl termina aqui |
udpecho.pl
# udpecho.pl begins here
# # Versão 1.00 30-07-2010 # Este script foi testado em # Abrir o VOS 17.0.2ah executando o Perl v5.8.0 compilado para i686-vos # Microsoft Windows XP Service Pack 3 em execução # ActiveState Perl v5.10.0 compilado para MSWin32-x86-multi-thread # Red Hat Linux 4AS-5.5 em execução # Perl v5.8.5 compilado para x86_64-linux-thread-multi # # use IO::Socket; use IO::Select; use Getopt::Long; use strict; meu ($resultado); my ($porta_local, $depuração, $resultado, $mensagem, $sinalizadores); my ($pronto, $soquete); meu ($x, $c); $result = GetOptions (‘port=s’ => $localPort, 'debug' => $debug); if (($resultado != 1) || !(definido($portaLocal))) { imprimir “nnUtilização:n”; imprimir “tperl udpecho.pl -port NÚMERO-DA-PORTA-LOCAL [-debug]nn”; sair; } if (defined($debug)) { print “local port number is ” . $localPort . “n”; } my $sock = IO::Socket::INET->new( Proto => ‘udp’, PortaLocal => $portaLocal ) ou morrer “Não foi possível criar o soquete $!n”; meu $read_set = novo IO::Select(); $read_set->adicionar($sock); $mensagem = “”; enquanto (1) { ($pronto) = IO::Select->selecionar($conjunto_de_leitura, indefinido, indefinido, 300); foreach $socket (@$pronto) { $socket->recv($mensagem, 100, $flags); if (definido ($debug)) { imprimir “Mensagem de ” . $socket->peerhost . mensagem: “. $mensagem . “n”; } $socket->send("ecoado por udpecho.pl: " . $message) ou morra "Erro de envio: $!" +n”; } } # # udpecho.pl termina aqui |
