다음을 통해 공유


IPAddress 클래스

정의

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 클래스의 새 인스턴스를 초기화합니다.

IPAddress(Byte[], Int64)

IPAddress 배열로 지정된 주소와 지정된 범위 식별자를 사용하여 Byte 클래스의 새 인스턴스를 초기화합니다.

IPAddress(Int64)

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로 서식을 지정하려고 시도합니다.

적용 대상