728x90
7. 네트워크 리소스 활용
.NET은 Network와 관련된 여러 형식을 아래와 같이 지원하고 있습니다.
Namespace | Type | 설명 |
System.Net | Dns, Uri, Cookie, WebClient, IPAddress | Dns, IP주소, URI등을 표현합니다. |
System.Net | FtpStatusCode, FtpWebRequest, FtpWebResponse | FTP와 관련된 표현에 사용됩니다. |
System.Net | HttpStatusCode, HttpWebRequest, HttpWebResponse | HTTP와 관련된 표현에 사용되며 이와 관련해 System. Net.Http의 Type또한 마련되어 있습니다. |
System.Net.Http | HttpClient, HttpMethod, HttpRequestMessage, HttpResponseMessage | HTTP와 관련된 표현에 사용됩니다. |
System.Net.Mail | Attachment, MailAddress, MailMessage, SmtpClient | SMTP와 관련된 표현에 사용됩니다. |
System.Net .NetworkInformation | IPStatus, NetworkChange, Ping, TcpStatistics | 저수준 네트워크 프로토콜에 사용됩니다. |
● URI, DNS, IPAddress
URI는 URL을 각각의 특성으로 분해할 수 있도록 합니다. URI사용법은 다음과 같으며 그 이전에 우선 Namespace로 System.Net을 Import 해야 합니다.
string url = "http://cliel.com/aaa/bbb?type=123";
Uri uri = new(url);
Console.WriteLine($"URL: {url}");
Console.WriteLine($"Scheme: {uri.Scheme}");
Console.WriteLine($"Port: {uri.Port}");
Console.WriteLine($"Host: {uri.Host}");
Console.WriteLine($"Path: {uri.AbsolutePath}");
Console.WriteLine($"Query: {uri.Query}");
//URL: http://cliel.com/aaa/bbb?type=123
//Scheme: http
//Port: 80
//Host: cliel.com
//Path: /aaa/bbb
//Query: ?type=123
DNS로는 URI의 Host를 통해 해당 Web서버의 IP를 조회할 수 있으며 IPAddress는 IP주소에 관한 각종 속성을 다루는 데 사용될 수 있습니다.
string url = "http://cliel.com/";
Uri uri = new(url);
IPHostEntry entry = Dns.GetHostEntry(uri.Host);
Console.WriteLine($"{entry.HostName}의 IP주소");
foreach (IPAddress address in entry.AddressList)
Console.WriteLine($"{address} - ({address.AddressFamily})");
//cliel.com의 IP주소
//112.175.184.95 - (InterNetwork)
● System.Net .NetworkInformation
System.Net .NetworkInformation의 Ping을 활용하면 Web서버의 응답 상태를 다음과 같은 방법으로 확인할 수 있습니다.
string url = "https://www.google.com/";
Uri uri = new(url);
Ping ping = new();
PingReply reply = ping.Send(uri.Host);
Console.WriteLine($"{uri.Host}로의 Ping 응답 : {reply.Status}.");
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("{0}으로부터 응답시간 : {1:N0}ms", arg0: reply.Address, arg1: reply.RoundtripTime);
}
//www.google.com로의 Ping 응답 : Success.
//142.250.199.100으로부터 응답시간 : 29ms
728x90
'.NET' 카테고리의 다른 글
[.NET] 닷넷 Type 사용하기 - 8. image 다루기 (0) | 2022.06.26 |
---|---|
[.NET] 닷넷 Type 사용하기 - 7. reflection 과 attributes (0) | 2022.06.26 |
[.NET] 닷넷 Type 사용하기 - 5. index와 range 그리고 Span (0) | 2022.06.26 |
[.NET] 닷넷 Type 사용하기 - 4. Collection 사용 (0) | 2022.06.26 |
[.NET] 닷넷 Type 사용하기 - 3. 정규식(regular expressions) (0) | 2022.06.26 |