IPAddress Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет IP-адрес.
public ref class IPAddress
public class IPAddress
[System.Serializable]
public class IPAddress
type IPAddress = class
[<System.Serializable>]
type IPAddress = class
Public Class IPAddress
- Наследование
-
IPAddress
- Атрибуты
Примеры
В следующем примере кода показано, как запросить сервер для получения семейных адресов и ПОДДЕРЖИВАЕМЫх IP-адресов.
// 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
Комментарии
Класс IPAddress содержит адрес компьютера в IP-сети.
Конструкторы
| Имя | Описание |
|---|---|
| IPAddress(Byte[], Int64) |
Инициализирует новый экземпляр IPAddress класса с адресом, указанным в виде массива Byte , и указанным идентификатором области. |
| IPAddress(Byte[]) |
Инициализирует новый экземпляр IPAddress класса с адресом, указанным в виде массива Byte . |
| IPAddress(Int64) |
Инициализирует новый экземпляр IPAddress класса с адресом, указанным в качестве Int64адреса. |
| IPAddress(ReadOnlySpan<Byte>, Int64) |
Инициализирует новый экземпляр IPAddress класса с адресом, указанным в виде диапазона байтов и указанным идентификатором области. |
| IPAddress(ReadOnlySpan<Byte>) |
Инициализирует новый экземпляр IPAddress класса с адресом, указанным в виде диапазона байтов. |
Поля
| Имя | Описание |
|---|---|
| Any |
Предоставляет IP-адрес, указывающий, что сервер должен прослушивать действия клиента во всех сетевых интерфейсах. Это поле может использоваться только для чтения. |
| Broadcast |
Предоставляет IP-адрес трансляции. Это поле может использоваться только для чтения. |
| IPv6Any |
Метод Bind(EndPoint) использует IPv6Any поле для указания того, что Socket необходимо прослушивать действия клиента во всех сетевых интерфейсах. |
| IPv6Loopback |
Предоставляет IP-адрес обратного цикла. Это свойство доступно только для чтения. |
| IPv6None |
Предоставляет IP-адрес, указывающий, что сетевой интерфейс не должен использоваться. Это свойство доступно только для чтения. |
| Loopback |
Предоставляет IP-адрес обратного цикла. Это поле может использоваться только для чтения. |
| None |
Предоставляет IP-адрес, указывающий, что сетевой интерфейс не должен использоваться. Это поле может использоваться только для чтения. |
Свойства
| Имя | Описание |
|---|---|
| Address |
Устаревшие..
Устаревшие..
Устаревшие..
IP-адрес. |
| AddressFamily |
Возвращает семейство адресов IP-адреса. |
| IsIPv4MappedToIPv6 |
Возвращает, является ли IP-адрес IPv4-сопоставленным IPv6-адресом. |
| IsIPv6LinkLocal |
Возвращает, является ли адрес локальным адресом связи IPv6. |
| IsIPv6Multicast |
Возвращает, является ли адрес глобальным адресом многоадресной рассылки IPv6. |
| IsIPv6SiteLocal |
Возвращает, является ли адрес локальным адресом сайта IPv6. |
| IsIPv6Teredo |
Возвращает, является ли адрес IPv6-адресом Teredo. |
| ScopeId |
Возвращает или задает идентификатор области адреса IPv6. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Сравнивает два IP-адреса. |
| GetAddressBytes() |
Предоставляет копию IPAddress массива байтов в сетевом порядке. |
| GetHashCode() |
Возвращает хэш-значение для IP-адреса. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| HostToNetworkOrder(Int16) |
Преобразует короткое значение из порядка байтов узла в сетевой байтовый порядок. |
| HostToNetworkOrder(Int32) |
Преобразует целочисленное значение из порядка байтов узла в сетевой байтовый порядок. |
| HostToNetworkOrder(Int64) |
Преобразует длинное значение из порядка байтов узла в порядок байтов сети. |
| IsLoopback(IPAddress) |
Указывает, является ли указанный IP-адрес адресом обратного цикла. |
| MapToIPv4() |
IPAddress Сопоставляет объект с IPv4-адресом. |
| MapToIPv6() |
IPAddress Сопоставляет объект с IPv6-адресом. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| NetworkToHostOrder(Int16) |
Преобразует короткое значение из сетевого порядка байтов в порядок байтов узла. |
| NetworkToHostOrder(Int32) |
Преобразует целочисленное значение из сетевого порядка байтов в порядок байтов узла. |
| NetworkToHostOrder(Int64) |
Преобразует длинное значение из сетевого порядка байтов в порядок байтов узла. |
| Parse(ReadOnlySpan<Char>) |
Преобразует IP-адрес, представленный как диапазон символов в IPAddress экземпляр. |
| Parse(String) |
Преобразует строку IP-адреса в IPAddress экземпляр. |
| ToString() |
Преобразует интернет-адрес в его стандартную нотацию. |
| TryFormat(Span<Char>, Int32) |
Пытается отформатировать текущий IP-адрес в предоставленный диапазон. |
| TryParse(ReadOnlySpan<Char>, IPAddress) |
Пытается проанализировать диапазон символов в значение. |
| TryParse(String, IPAddress) |
Определяет, является ли строка допустимым IP-адресом. |
| TryWriteBytes(Span<Byte>, Int32) |
Пытается записать текущий IP-адрес в диапазон байтов в сетевом порядке. |