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 구성 요소를 분석하기 전에 사전 검사를 수행할 때 유용하게 활용할 수 있습니다.