IPAddress 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
IP(인터넷 프로토콜) 주소를 제공합니다.
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
- 상속
-
IPAddress
- 특성
- 구현
예제
다음 코드 예제에서는 서버를 쿼리하여 패밀리 주소와 지원하는 IP 주소를 가져오는 방법을 보여 줍니다.
// 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
설명
클래스에는 IPAddress IP 네트워크에 있는 컴퓨터의 주소가 포함됩니다.
생성자
IPAddress(Byte[]) | |
IPAddress(Byte[], Int64) |
IPAddress 배열로 지정된 주소와 지정된 범위 식별자를 사용하여 Byte 클래스의 새 인스턴스를 초기화합니다. |
IPAddress(Int64) | |
IPAddress(ReadOnlySpan<Byte>) |
바이트 범위로 지정된 주소를 사용하여 IPAddress 클래스의 새 인스턴스를 초기화합니다. |
IPAddress(ReadOnlySpan<Byte>, Int64) |
바이트 범위로 지정된 주소와 지정된 범위 식별자를 사용하여 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 주소인지 여부를 가져옵니다. |
IsIPv6UniqueLocal |
주소가 IPv6 고유 로컬 주소인지 여부를 가져옵니다. |
ScopeId |
IPv6 주소 범위 식별자를 가져오거나 설정합니다. |
메서드
Equals(Object) |
두 개의 IP 주소를 비교합니다. |
GetAddressBytes() |
의 복사본을 IPAddress 네트워크 순서로 바이트 배열로 제공합니다. |
GetHashCode() |
IP 주소에 대한 해시 값을 반환합니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
HostToNetworkOrder(Int16) |
short 값을 호스트 바이트 순서에서 네트워크 바이트 순서로 변환합니다. |
HostToNetworkOrder(Int32) |
정수 값을 호스트 바이트 순서에서 네트워크 바이트 순서로 변환합니다. |
HostToNetworkOrder(Int64) |
호스트 바이트 순서에서 네트워크 바이트 순서로 long 값을 변환합니다. |
IsLoopback(IPAddress) |
지정된 IP 주소가 루프백 주소인지 여부를 나타냅니다. |
MapToIPv4() |
IPAddress 개체를 IPv4 주소로 매핑합니다. |
MapToIPv6() |
IPAddress 개체를 IPv6 주소로 매핑합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
NetworkToHostOrder(Int16) |
short 값을 네트워크 바이트 순서에서 호스트 바이트 순서로 변환합니다. |
NetworkToHostOrder(Int32) |
정수 값을 네트워크 바이트 순서에서 호스트 바이트 순서로 변환합니다. |
NetworkToHostOrder(Int64) |
long 값을 네트워크 바이트 순서에서 호스트 바이트 순서로 변환합니다. |
Parse(ReadOnlySpan<Char>) |
문자 범위로 표현된 IP 주소를 IPAddress 인스턴스로 변환합니다. |
Parse(String) |
IP 주소 문자열을 IPAddress 인스턴스로 변환합니다. |
ToString() |
인터넷 주소를 표준 표기법으로 변환합니다. |
TryFormat(Span<Byte>, Int32) |
현재 IP 주소의 형식을 제공된 범위로 지정하려고 시도합니다. |
TryFormat(Span<Char>, Int32) |
현재 IP 주소의 형식을 제공된 범위로 지정하려고 시도합니다. |
TryParse(ReadOnlySpan<Char>, IPAddress) |
문자 범위를 값으로 구문 분석하려고 합니다. |
TryParse(String, IPAddress) |
문자열이 유효한 IP 주소인지 확인합니다. |
TryWriteBytes(Span<Byte>, Int32) |
현재 IP 주소를 네트워크 순서로 바이트 범위에 쓰려고 시도합니다. |
명시적 인터페이스 구현
IFormattable.ToString(String, IFormatProvider) |
지정된 형식을 사용하여 현재 인스턴스 값의 형식을 지정합니다. |
IParsable<IPAddress>.Parse(String, IFormatProvider) |
문자열을 값으로 구문 분석합니다. |
IParsable<IPAddress>.TryParse(String, IFormatProvider, IPAddress) |
문자열을 로 구문 분석하려고 시도합니다 IPAddress. |
ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
현재 인스턴스의 값을 제공된 문자 범위로 서식을 지정하려고 시도합니다. |
ISpanParsable<IPAddress>.Parse(ReadOnlySpan<Char>, IFormatProvider) |
문자 범위를 값으로 구문 분석합니다. |
ISpanParsable<IPAddress>.TryParse(ReadOnlySpan<Char>, IFormatProvider, IPAddress) |
문자 범위를 값으로 구문 분석하려고 합니다. |
IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider) |
현재 인스턴스의 값을 제공된 바이트 범위로 UTF-8로 서식을 지정하려고 시도합니다. |
적용 대상
.NET