IPAddress Classe

Definição

Fornece um endereço de Protocolo de Internet (IP).

public ref class IPAddress
public class IPAddress
[System.Serializable]
public class IPAddress
type IPAddress = class
[<System.Serializable>]
type IPAddress = class
Public Class IPAddress
Herança
IPAddress
Atributos

Exemplos

O exemplo de código seguinte mostra como consultar um servidor para obter os endereços familiares e os endereços IP que suporta.


// This program shows how to use the IPAddress class to obtain a server
// IP addressess and related information.

using System;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;

namespace Mssc.Services.ConnectionManagement
{

  class TestIPAddress
  {

    /**
      * The IPAddresses method obtains the selected server IP address information.
      * It then displays the type of address family supported by the server and its
      * IP address in standard and byte format.
      **/
    private static void IPAddresses(string server)
    {
      try
      {
        System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();

        // Get server related information.
        IPHostEntry heserver = Dns.GetHostEntry(server);

        // Loop on the AddressList
        foreach (IPAddress curAdd in heserver.AddressList)
        {


          // Display the type of address family supported by the server. If the
          // server is IPv6-enabled this value is: InterNetworkV6. If the server
          // is also IPv4-enabled there will be an additional value of InterNetwork.
          Console.WriteLine("AddressFamily: " + curAdd.AddressFamily.ToString());

          // Display the ScopeId property in case of IPV6 addresses.
          if(curAdd.AddressFamily.ToString() == ProtocolFamily.InterNetworkV6.ToString())
            Console.WriteLine("Scope Id: " + curAdd.ScopeId.ToString());


          // Display the server IP address in the standard format. In
          // IPv4 the format will be dotted-quad notation, in IPv6 it will be
          // in in colon-hexadecimal notation.
          Console.WriteLine("Address: " + curAdd.ToString());

          // Display the server IP address in byte format.
          Console.Write("AddressBytes: ");

          Byte[] bytes = curAdd.GetAddressBytes();
          for (int i = 0; i < bytes.Length; i++)
          {
            Console.Write(bytes[i]);
          }

          Console.WriteLine("\r\n");
        }
      }
      catch (Exception e)
      {
        Console.WriteLine("[DoResolve] Exception: " + e.ToString());
      }
    }

    // This IPAddressAdditionalInfo displays additional server address information.
    private static void IPAddressAdditionalInfo()
    {
      try
      {
        // Display the flags that show if the server supports IPv4 or IPv6
        // address schemas.
        Console.WriteLine("\r\nSupportsIPv4: " + Socket.SupportsIPv4);
        Console.WriteLine("SupportsIPv6: " + Socket.SupportsIPv6);

        if (Socket.SupportsIPv6)
        {
          // Display the server Any address. This IP address indicates that the server
          // should listen for client activity on all network interfaces.
          Console.WriteLine("\r\nIPv6Any: " + IPAddress.IPv6Any.ToString());

          // Display the server loopback address.
          Console.WriteLine("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString());

          // Used during autoconfiguration first phase.
          Console.WriteLine("IPv6None: " + IPAddress.IPv6None.ToString());

          Console.WriteLine("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback));
        }
        Console.WriteLine("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback));
      }
      catch (Exception e)
      {
        Console.WriteLine("[IPAddresses] Exception: " + e.ToString());
      }
    }

    public static void Main(string[] args)
    {
      string server = null;

      // Define a regular expression to parse user's input.
      // This is a security check. It allows only
      // alphanumeric input string between 2 to 40 character long.
      Regex rex = new Regex(@"^[a-zA-Z]\w{1,39}$");

      if (args.Length < 1)
      {
        // If no server name is passed as an argument to this program, use the current
        // server name as default.
        server = Dns.GetHostName();
        Console.WriteLine("Using current host: " + server);
      }
      else
      {
        server = args[0];
        if (!(rex.Match(server)).Success)
        {
          Console.WriteLine("Input string format not allowed.");
          return;
        }
      }

      // Get the list of the addresses associated with the requested server.
      IPAddresses(server);

      // Get additional address information.
      IPAddressAdditionalInfo();
    }
  }
}
' This program shows how to use the IPAddress class to obtain a server 
' IP addressess and related information.
Imports System.Net
Imports System.Net.Sockets
Imports System.Text.RegularExpressions

Namespace Mssc.Services.ConnectionManagement
  Module M_TestIPAddress

    Class TestIPAddress

      'The IPAddresses method obtains the selected server IP address information.
      'It then displays the type of address family supported by the server and 
      'its IP address in standard and byte format.
      Private Shared Sub IPAddresses(ByVal server As String)
        Try
          Dim ASCII As New System.Text.ASCIIEncoding()

          ' Get server related information.
          Dim heserver As IPHostEntry = Dns.Resolve(server)

          ' Loop on the AddressList
          Dim curAdd As IPAddress
          For Each curAdd In heserver.AddressList

            ' Display the type of address family supported by the server. If the
            ' server is IPv6-enabled this value is: InterNetworkV6. If the server
            ' is also IPv4-enabled there will be an additional value of InterNetwork.
            Console.WriteLine(("AddressFamily: " + curAdd.AddressFamily.ToString()))

            ' Display the ScopeId property in case of IPV6 addresses.
            If curAdd.AddressFamily.ToString() = ProtocolFamily.InterNetworkV6.ToString() Then
              Console.WriteLine(("Scope Id: " + curAdd.ScopeId.ToString()))
            End If

            ' Display the server IP address in the standard format. In 
            ' IPv4 the format will be dotted-quad notation, in IPv6 it will be
            ' in in colon-hexadecimal notation.
            Console.WriteLine(("Address: " + curAdd.ToString()))

            ' Display the server IP address in byte format.
            Console.Write("AddressBytes: ")



            Dim bytes As [Byte]() = curAdd.GetAddressBytes()
            Dim i As Integer
            For i = 0 To bytes.Length - 1
              Console.Write(bytes(i))
            Next i
            Console.WriteLine(ControlChars.Cr + ControlChars.Lf)
          Next curAdd 

        Catch e As Exception
          Console.WriteLine(("[DoResolve] Exception: " + e.ToString()))
        End Try
      End Sub


      ' This IPAddressAdditionalInfo displays additional server address information.
      Private Shared Sub IPAddressAdditionalInfo()
        Try
          ' Display the flags that show if the server supports IPv4 or IPv6
          ' address schemas.
          Console.WriteLine((ControlChars.Cr + ControlChars.Lf + "SupportsIPv4: " + Socket.SupportsIPv4.ToString()))
          Console.WriteLine(("SupportsIPv6: " + Socket.SupportsIPv6.ToString()))

          If Socket.SupportsIPv6 Then
            ' Display the server Any address. This IP address indicates that the server 
            ' should listen for client activity on all network interfaces. 
            Console.WriteLine((ControlChars.Cr + ControlChars.Lf + "IPv6Any: " + IPAddress.IPv6Any.ToString()))

            ' Display the server loopback address. 
            Console.WriteLine(("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString()))

            ' Used during autoconfiguration first phase.
            Console.WriteLine(("IPv6None: " + IPAddress.IPv6None.ToString()))

            Console.WriteLine(("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback).ToString()))
          End If
          Console.WriteLine(("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback).ToString()))
        Catch e As Exception
          Console.WriteLine(("[IPAddresses] Exception: " + e.ToString()))
        End Try
      End Sub

      Public Shared Sub Main(ByVal args() As String)
        Dim server As String = Nothing

        ' Define a regular expression to parse user's input.
        ' This is a security check. It allows only
        ' alphanumeric input string between 2 to 40 character long.
        Dim rex As New Regex("^[a-zA-Z]\w{1,39}$")

        If args.Length < 1 Then
          ' If no server name is passed as an argument to this program, use the current 
          ' server name as default.
          server = Dns.GetHostName()
          Console.WriteLine(("Using current host: " + server))
        Else
          server = args(0)
          If Not rex.Match(server).Success Then
            Console.WriteLine("Input string format not allowed.")
            Return
          End If
        End If

        ' Get the list of the addresses associated with the requested server.
        IPAddresses(server)

        ' Get additional address information.
        IPAddressAdditionalInfo()
      End Sub
    End Class
  End Module
End Namespace

Observações

A IPAddress classe contém o endereço de um computador numa rede IP.

Construtores

Name Description
IPAddress(Byte[], Int64)

Inicializa uma nova instância da IPAddress classe com o endereço especificado como array Byte e o identificador de âmbito especificado.

IPAddress(Byte[])

Inicializa uma nova instância da IPAddress classe com o endereço especificado como um Byte array.

IPAddress(Int64)

Inicializa uma nova instância da IPAddress classe com o endereço especificado como um Int64.

IPAddress(ReadOnlySpan<Byte>, Int64)

Inicializa uma nova instância da IPAddress classe com o endereço especificado como um byte span e o identificador de escopo especificado.

IPAddress(ReadOnlySpan<Byte>)

Inicializa uma nova instância da IPAddress classe com o endereço especificado como um byte span.

Campos

Name Description
Any

Fornece um endereço IP que indica que o servidor deve ouvir a atividade do cliente em todas as interfaces de rede. Este campo é só de leitura.

Broadcast

Fornece o endereço IP de broadcast. Este campo é só de leitura.

IPv6Any

O Bind(EndPoint) método utiliza o IPv6Any campo para indicar que é Socket necessário ouvir a atividade do cliente em todas as interfaces de rede.

IPv6Loopback

Fornece o endereço de loopback IP. Esta propriedade é somente leitura.

IPv6None

Fornece um endereço IP que indica que nenhuma interface de rede deve ser utilizada. Esta propriedade é somente leitura.

Loopback

Fornece o endereço de loopback IP. Este campo é só de leitura.

None

Fornece um endereço IP que indica que nenhuma interface de rede deve ser utilizada. Este campo é só de leitura.

Propriedades

Name Description
Address
Obsoleto.
Obsoleto.
Obsoleto.

Um endereço de Protocolo de Internet (IP).

AddressFamily

Obtém a família de endereços do endereço IP.

IsIPv4MappedToIPv6

Percebe se o endereço IP é um endereço IPv6 mapeado por IPv4.

IsIPv6LinkLocal

Percebe se o endereço é um endereço local de link IPv6.

IsIPv6Multicast

Obtém se o endereço é um endereço global multicast IPv6.

IsIPv6SiteLocal

Obtém se o endereço é um endereço local IPv6.

IsIPv6Teredo

Obtém se o endereço é um endereço IPv6 Teredo.

ScopeId

Obtém ou define o identificador de âmbito de endereço IPv6.

Métodos

Name Description
Equals(Object)

Compara dois endereços IP.

GetAddressBytes()

Fornece uma cópia do IPAddress como um array de bytes em ordem de rede.

GetHashCode()

Devolve um valor de hash para um endereço IP.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
HostToNetworkOrder(Int16)

Converte um valor curto da ordem dos bytes do host para a ordem dos bytes da rede.

HostToNetworkOrder(Int32)

Converte um valor inteiro da ordem dos bytes do host para a ordem dos bytes da rede.

HostToNetworkOrder(Int64)

Converte um valor longo da ordem dos bytes do host para a ordem dos bytes da rede.

IsLoopback(IPAddress)

Indica se o endereço IP especificado é o endereço de loopback.

MapToIPv4()

Mapeia o IPAddress objeto para um endereço IPv4.

MapToIPv6()

Mapeia o IPAddress objeto para um endereço IPv6.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
NetworkToHostOrder(Int16)

Converte um valor curto da ordem dos bytes da rede para a ordem dos bytes do host.

NetworkToHostOrder(Int32)

Converte um valor inteiro da ordem dos bytes da rede para a ordem dos bytes do hospedeiro.

NetworkToHostOrder(Int64)

Converte um valor longo da ordem dos bytes da rede para a ordem dos bytes do hospedeiro.

Parse(ReadOnlySpan<Char>)

Converte um endereço IP representado como um intervalo de caracteres numa IPAddress instância.

Parse(String)

Converte uma cadeia de endereços IP numa IPAddress instância.

ToString()

Converte um endereço de Internet para a sua notação padrão.

TryFormat(Span<Char>, Int32)

Tenta formatar o endereço IP atual no intervalo fornecido.

TryParse(ReadOnlySpan<Char>, IPAddress)

Tenta separar um intervalo de caracteres num valor.

TryParse(String, IPAddress)

Determina se uma cadeia é um endereço IP válido.

TryWriteBytes(Span<Byte>, Int32)

Tenta escrever o endereço IP atual num intervalo de bytes por ordem de rede.

Aplica-se a