IPAddress Classe
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.
Fornece um endereço IP (Internet Protocol).
public ref class IPAddress
public ref class IPAddress : IParsable<System::Net::IPAddress ^>, ISpanFormattable, ISpanParsable<System::Net::IPAddress ^>, IUtf8SpanFormattable
public class IPAddress
public class IPAddress : IParsable<System.Net.IPAddress>, ISpanFormattable, ISpanParsable<System.Net.IPAddress>, IUtf8SpanFormattable
[System.Serializable]
public class IPAddress
type IPAddress = class
type IPAddress = class
interface ISpanFormattable
interface IFormattable
interface ISpanParsable<IPAddress>
interface IParsable<IPAddress>
interface IUtf8SpanFormattable
[<System.Serializable>]
type IPAddress = class
Public Class IPAddress
Public Class IPAddress
Implements IParsable(Of IPAddress), ISpanFormattable, ISpanParsable(Of IPAddress), IUtf8SpanFormattable
- Herança
-
IPAddress
- Atributos
- Implementações
Exemplos
O exemplo de código a seguir mostra como consultar um servidor para obter os endereços da família e os endereços IP compatíveis.
// This program shows how to use the IPAddress class to obtain a server
// IP addressess and related information.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text::RegularExpressions;
/**
* 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.
**/
void IPAddresses( String^ server )
{
try
{
System::Text::ASCIIEncoding^ ASCII = gcnew System::Text::ASCIIEncoding;
// Get server related information.
IPHostEntry^ heserver = Dns::GetHostEntry( server );
// Loop on the AddressList
System::Collections::IEnumerator^ myEnum = heserver->AddressList->GetEnumerator();
while ( myEnum->MoveNext() )
{
IPAddress^ curAdd = safe_cast<IPAddress^>(myEnum->Current);
// 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: {0}", curAdd->AddressFamily );
// Display the ScopeId property in case of IPV6 addresses.
if ( curAdd->AddressFamily.ToString() == ProtocolFamily::InterNetworkV6.ToString() )
Console::WriteLine( "Scope Id: {0}", curAdd->ScopeId );
// 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: {0}", curAdd );
// Display the server IP address in byte format.
Console::Write( "AddressBytes: " );
array<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: {0}", e );
}
}
// This IPAddressAdditionalInfo displays additional server address information.
void IPAddressAdditionalInfo()
{
try
{
// Display the flags that show if the server supports IPv4 or IPv6
// address schemas.
Console::WriteLine( "\r\nSupportsIPv4: {0}", Socket::SupportsIPv4 );
Console::WriteLine( "SupportsIPv6: {0}", 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: {0}", IPAddress::IPv6Any );
// Display the server loopback address.
Console::WriteLine( "IPv6Loopback: {0}", IPAddress::IPv6Loopback );
// Used during autoconfiguration first phase.
Console::WriteLine( "IPv6None: {0}", IPAddress::IPv6None );
Console::WriteLine( "IsLoopback(IPv6Loopback): {0}", IPAddress::IsLoopback( IPAddress::IPv6Loopback ) );
}
Console::WriteLine( "IsLoopback(Loopback): {0}", IPAddress::IsLoopback( IPAddress::Loopback ) );
}
catch ( Exception^ e )
{
Console::WriteLine( "[IPAddresses] Exception: {0}", e );
}
}
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
String^ server = nullptr;
// 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 = gcnew Regex( "^[a-zA-Z]\\w{1,39}$" );
if ( args->Length < 2 )
{
// 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: {0}", server );
}
else
{
server = args[ 1 ];
if ( !(rex->Match(server))->Success )
{
Console::WriteLine( "Input string format not allowed." );
return -1;
}
}
// 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.
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
Comentários
A IPAddress classe contém o endereço de um computador em uma rede IP.
Construtores
IPAddress(Byte[]) |
Inicializa uma nova instância da classe IPAddress com o endereço especificado como uma matriz Byte. |
IPAddress(Byte[], Int64) |
Inicializa uma nova instância da classe IPAddress com o endereço especificado como uma matriz Byte e o identificador de escopo especificado. |
IPAddress(Int64) |
Inicializa uma nova instância da classe IPAddress com o endereço especificado como um Int64. |
IPAddress(ReadOnlySpan<Byte>) |
Inicializa uma nova instância da classe IPAddress com o endereço especificado como um intervalo de bytes. |
IPAddress(ReadOnlySpan<Byte>, Int64) |
Inicializa uma nova instância da classe IPAddress com o endereço especificado como um intervalo de bytes e o identificador de escopo especificado. |
Campos
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 é somente leitura. |
Broadcast |
Fornece o endereço IP de difusão. Este campo é somente leitura. |
IPv6Any |
O método Bind(EndPoint) utiliza o campo IPv6Any para indicar que um Socket deve escutar a atividade de cliente em todos os adaptadores de rede. |
IPv6Loopback |
Fornece o endereço de loopback de IP. Esta propriedade é somente para leitura. |
IPv6None |
Fornece um endereço IP que indica que nenhum adaptador de rede deve ser usado. Esta propriedade é somente para leitura. |
Loopback |
Fornece o endereço de loopback de IP. Este campo é somente leitura. |
None |
Fornece um endereço IP que indica que nenhum adaptador de rede deve ser usado. Este campo é somente leitura. |
Propriedades
Address |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Um endereço IP (Internet Protocol). |
AddressFamily |
Obtém a família de endereços do endereço IP. |
IsIPv4MappedToIPv6 |
Determina se o endereço IP é um endereço IPv6 mapeado por IPv4. |
IsIPv6LinkLocal |
Determina se o endereço é um endereço local do link IPv6. |
IsIPv6Multicast |
Determina se o endereço é um endereço global multicast IPv6. |
IsIPv6SiteLocal |
Determina se o endereço é um endereço local de site IPv6. |
IsIPv6Teredo |
Determina se o endereço é um endereço IPv6 Teredo. |
IsIPv6UniqueLocal |
Obtém se o endereço é um endereço Local Exclusivo IPv6. |
ScopeId |
Obtém ou define o identificador de escopo de endereço IPv6. |
Métodos
Equals(Object) |
Compara dois endereços IP. |
GetAddressBytes() |
Fornece uma cópia do IPAddress como uma matriz de bytes na ordem de rede. |
GetHashCode() |
Retorna 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 resumido da ordem de byte de host em ordem de byte de rede. |
HostToNetworkOrder(Int32) |
Converte um valor inteiro da ordem de byte de host para a ordem de byte de rede. |
HostToNetworkOrder(Int64) |
Converte um valor longo de ordem de byte de host em ordem de byte de rede. |
IsLoopback(IPAddress) |
Indica se o endereço IP especificado é o endereço de loopback. |
MapToIPv4() |
Mapeia o objeto IPAddress para um endereço IPv4. |
MapToIPv6() |
Mapeia o objeto IPAddress para um endereço IPv6. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
NetworkToHostOrder(Int16) |
Converte um valor resumido da ordem de byte de rede em ordem de byte de host. |
NetworkToHostOrder(Int32) |
Converte um valor inteiro da ordem de byte de rede para a ordem de byte de host. |
NetworkToHostOrder(Int64) |
Converte um valor longo de ordem de byte de rede em ordem de byte de host. |
Parse(ReadOnlySpan<Char>) |
Converte um endereço IP representado como um intervalo de caracteres em uma instância de IPAddress. |
Parse(String) |
Converte uma cadeia de caracteres de endereços IP em uma instância IPAddress. |
ToString() |
Converte um endereço de Internet em uma notação padrão. |
TryFormat(Span<Byte>, Int32) |
Tenta formatar o endereço IP atual no intervalo fornecido. |
TryFormat(Span<Char>, Int32) |
Tenta formatar o endereço IP atual no intervalo fornecido. |
TryParse(ReadOnlySpan<Char>, IPAddress) |
Tenta analisar um intervalo de caracteres em um valor. |
TryParse(String, IPAddress) |
Determina se uma cadeia de caracteres é um endereço IP válido. |
TryWriteBytes(Span<Byte>, Int32) |
Tenta gravar o endereço IP atual em um intervalo de bytes na ordem de rede. |
Implantações explícitas de interface
IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. |
IParsable<IPAddress>.Parse(String, IFormatProvider) |
Analisa uma cadeia de caracteres em um valor. |
IParsable<IPAddress>.TryParse(String, IFormatProvider, IPAddress) |
Tenta analisar uma cadeia de caracteres em um IPAddress. |
ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Tenta formatar o valor da instância atual no intervalo fornecido de caracteres. |
ISpanParsable<IPAddress>.Parse(ReadOnlySpan<Char>, IFormatProvider) |
Analisa um intervalo de caracteres em um valor. |
ISpanParsable<IPAddress>.TryParse(ReadOnlySpan<Char>, IFormatProvider, IPAddress) |
Tenta analisar um intervalo de caracteres em um valor. |
IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
Tenta formatar o valor da instância atual como UTF-8 no intervalo fornecido de bytes. |