IPAddress Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |