IPStatus Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Relata o status de envio de uma mensagem de eco do protocolo ICMP para um computador.
public enum class IPStatus
public enum IPStatus
type IPStatus =
Public Enum IPStatus
- Herança
Campos
BadDestination | 11018 | A solicitação de eco ICMP falhou porque o endereço IP de destino não pode receber solicitações de eco ICMP ou nunca deve aparecer no campo de endereço de destino de qualquer datagrama IP. Por exemplo, chamar Send e especificar o endereço IP "000.0.0.0" retorna esse status. |
BadHeader | 11042 | A solicitação de eco ICMP falhou porque o cabeçalho é inválido. |
BadOption | 11007 | A solicitação de eco ICMP falhou porque ela contém uma opção inválida. |
BadRoute | 11012 | A solicitação de eco ICMP falhou porque não há nenhuma rota válida entre os computadores de origem e de destino. |
DestinationHostUnreachable | 11003 | A solicitação de eco ICMP falhou porque o computador de destino não está acessível. |
DestinationNetworkUnreachable | 11002 | A solicitação de eco ICMP falhou porque a rede que contém o computador de destino não está acessível. |
DestinationPortUnreachable | 11005 | A solicitação de eco ICMP falhou porque a porta no computador de destino não está disponível. |
DestinationProhibited | 11004 | A solicitação de eco ICMPv6 falhou porque o contato com o computador de destino é proibido administrativamente. Esse valor se aplica somente ao IPv6. |
DestinationProtocolUnreachable | 11004 | A solicitação de eco ICMP falhou porque o computador de destino especificado em uma mensagem de eco ICMP está inacessível porque ele não dá suporte ao protocolo do pacote. Esse valor se aplica somente ao IPv4. Esse valor é descrito no IETF RFC 1812 como Comunicação Proibida Administrativamente. |
DestinationScopeMismatch | 11045 | A solicitação de eco ICMP falhou porque o endereço de origem e o endereço de destino especificados em uma mensagem de eco ICMP não estão no mesmo escopo. Isso geralmente é causado por um roteador encaminhando um pacote usando uma interface que está fora do escopo do endereço de origem. Os escopos de endereço (vínculo local, site local e escopo global) determinam onde na rede um endereço é válido. |
DestinationUnreachable | 11040 | A solicitação de eco ICMP falhou porque o computador de destino especificado em uma mensagem de eco ICMP está inacessível, a causa exata do problema é desconhecida. |
HardwareError | 11008 | A solicitação de eco ICMP falhou devido a um erro de hardware. |
IcmpError | 11044 | A solicitação de eco ICMP falhou devido a um erro de protocolo ICMP. |
NoResources | 11006 | A solicitação de eco ICMP falhou devido a recursos de rede insuficientes. |
PacketTooBig | 11009 | A solicitação de eco ICMP falhou porque o pacote que contém a solicitação é maior do que a MTU (Unidade Máxima de Transmissão) de um nó (roteador ou gateway) localizado entre a origem e o destino. A MTU define o tamanho máximo de um pacote transmissível. |
ParameterProblem | 11015 | A solicitação de eco ICMP falhou porque um nó (roteador ou gateway) encontrou problemas ao processar o cabeçalho do pacote. Este será o status se, por exemplo, o cabeçalho contiver dados de campo inválidos ou uma opção não reconhecida. |
SourceQuench | 11016 | A solicitação de eco ICMP falhou porque o pacote foi descartado. Isso ocorre quando a fila de saída do computador de origem tem espaço de armazenamento insuficiente ou quando os pacotes chegam ao destino rápido demais para serem processados. |
Success | 0 | A solicitação de eco ICMP foi bem-sucedida, foi recebida uma resposta de eco ICMP. Quando você obtém esse código de status, as outras propriedades PingReply contêm dados válidos. |
TimedOut | 11010 | A resposta de eco do ICMP não foi recebida dentro do tempo alocado. O tempo padrão permitido para respostas é 5 segundos. Você pode alterar esse valor usando os métodos Send ou SendAsync que aceitam um parâmetro |
TimeExceeded | 11041 | A solicitação de eco ICMP falhou porque seu valor de TTL (vida útil) chegou a zero, fazendo o nó de encaminhamento (roteador ou gateway) descartar o pacote. |
TtlExpired | 11013 | A solicitação de eco ICMP falhou porque seu valor de TTL (vida útil) chegou a zero, fazendo o nó de encaminhamento (roteador ou gateway) descartar o pacote. |
TtlReassemblyTimeExceeded | 11014 | A solicitação de eco ICMP falhou porque o pacote foi dividido em fragmentos para transmissão e todos os fragmentos não foram recebidos dentro do tempo alocado para a remontagem. O RFC 2460 especifica 60 segundos como o limite de tempo no qual todos os fragmentos de pacote devem ser recebidos. |
Unknown | -1 | A solicitação de eco ICMP falhou por motivo desconhecido. |
UnrecognizedNextHeader | 11043 | A solicitação de eco ICMP falhou porque o campo Próximo Cabeçalho não contém um valor reconhecido. O campo Próximo Cabeçalho indica o tipo de cabeçalho de extensão (se houver) ou o protocolo acima da camada IP, por exemplo, TCP ou UDP. |
Exemplos
O exemplo de código a seguir envia uma mensagem de eco ICMP e verifica o status.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Net::NetworkInformation;
using namespace System::Text;
// args[1] can be an IPaddress or host name.
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
Ping ^ pingSender = gcnew Ping;
PingOptions ^ options = gcnew PingOptions;
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options->DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
array<Byte>^buffer = Encoding::ASCII->GetBytes( data );
int timeout = 120;
PingReply ^ reply = pingSender->Send( args[ 1 ], timeout, buffer, options );
if ( reply->Status == IPStatus::Success )
{
Console::WriteLine( "Address: {0}", reply->Address->ToString() );
Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime );
Console::WriteLine( "Time to live: {0}", reply->Options->Ttl );
Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment );
Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length );
}
}
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
namespace Examples.System.Net.NetworkInformation.PingTest
{
public class PingExample
{
// args[0] can be an IPaddress or host name.
public static void Main (string[] args)
{
Ping pingSender = new Ping ();
PingOptions options = new PingOptions ();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 120;
PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine ("Address: {0}", reply.Address.ToString ());
Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
}
}
}
open System.Net.NetworkInformation
open System.Text
// args[0] can be an IPaddress or host name.
[<EntryPoint>]
let main args =
let pingSender = new Ping()
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
let options = PingOptions()
options.DontFragment <- true
// Create a buffer of 32 bytes of data to be transmitted.
let data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
let buffer = Encoding.ASCII.GetBytes data
let timeout = 120
let reply: PingReply = pingSender.Send(args.[0], timeout, buffer, options)
match reply.Status with
| IPStatus.Success ->
printfn "Address: %O" reply.Address
printfn "RoundTrip time: %d" reply.RoundtripTime
printfn "Time to live: %d" reply.Options.Ttl
printfn "Don't fragment: %b" reply.Options.DontFragment
printfn "Buffer size: %d" reply.Buffer.Length
0
| _ ->
eprintfn "Error sending ping: %O" reply
eprintfn "Error was: %O" reply.Status
1
Comentários
A Ping classe usa os valores nessa enumeração para definir a PingReply.Status propriedade . A Ping classe retorna PingReply objetos quando você chama os Ping.Send métodos ou Ping.SendAsync para marcar se você pode acessar um computador pela rede.
Aviso
Os valores de enumeração DestinationProhibited e DestinationProtocolUnreachable têm o mesmo valor numérico. Isso é possível porque DestinationProhibited se aplica somente a IPv6 e DestinationProtocolUnreachable se aplica somente ao IPv4.