Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Uri.CheckHostName(String) 메서드 – 호스트 이름 유효성 검사 완벽 가이드

Uri.CheckHostName() 메서드란?

C#의 Uri.CheckHostName() 메서드는 지정된 호스트 이름(host name)이 유효한 DNS 이름인지 여부를 판별하는 정적(static) 메서드입니다. 이 메서드는 문자열 형태의 호스트 이름을 매개변수로 받아, 해당 이름이 어떤 유형에 속하는지 UriHostNameType 열거형 값으로 반환합니다.

구문

메서드의 기본 구문은 다음과 같습니다.

public static UriHostNameType CheckHostName(string host_name);

반환되는 UriHostNameType 값은 다음과 같습니다.

  • Dns – 유효한 DNS 도메인 이름
  • IPv4 – 유효한 IPv4 주소
  • IPv6 – 유효한 IPv6 주소
  • Unknown – 인식할 수 없는 형식

예제 1: localhost 문자열 검사

다음은 Uri.CheckHostName() 메서드를 구현한 첫 번째 예제입니다.

using System;
public class Demo {
   public static void Main(){
      string strURI = "https://localhost";
      Console.WriteLine("URI = "+strURI);
      UriHostNameType res = Uri.CheckHostName(strURI);
      Console.WriteLine("Host type = "+res);
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

URI = https://localhost
Host type = Unknown

"https://localhost"처럼 스키마(scheme)가 포함된 전체 URI 문자열을 전달하면 순수한 호스트 이름이 아니기 때문에 Unknown이 반환됩니다.

예제 2: DNS 도메인 이름 검사

이번에는 일반적인 도메인 이름 문자열을 검사해 보겠습니다.

using System;
public class Demo {
   public static void Main(){
      string strURI = "www.tutorialspoint.com";
      Console.WriteLine("URI = "+strURI);
      UriHostNameType res = Uri.CheckHostName(strURI);
      Console.WriteLine("Host type = "+res);
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

URI = www.tutorialspoint.com
Host type = Dns

순수한 도메인 형식의 문자열이므로 Dns가 반환되는 것을 확인할 수 있습니다.

정리

Uri.CheckHostName() 메서드는 입력 문자열에 스키마나 경로가 포함되지 않은 순수한 호스트 이름만 전달해야 올바른 결과를 얻을 수 있습니다. 사용자 입력으로부터 호스트 이름의 유효성을 검증하거나, URI 구성 요소를 분석하기 전에 사전 검사를 수행할 때 유용하게 활용할 수 있습니다.