UD_park's IT story
[C#] 컴퓨터 IP 출력하기(feat.DNS에 대한 개념과 설명) 본문
[이 포스팅은
시작하세요! C# 7.1 프로그래밍의
내용을 발췌하였습니다]
[보기용 예제 소스 코드에서 오류 발생시에
댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]
이번에는 C#으로 네트워크 통신하는
방법 중에 첫 번째로 가장 기본적인
내 컴퓨터의 IP주소를 읽어와
출력하는 프로그램을 작성해 보겠습니다
먼저 사진으로 보고 난 뒤 설명을
이어가도록 하겠습니다
간단한 예제이기 때문에 소스 코드가
그리 길지 않아서 설명은 간단히 하겠습니다
일단 처음보실 코드는 7번 줄입니다
프로그램을 디버깅하기 전에
System안에 Net이라는 함수들을
가져와 미리 사용하기전에 준비하는 정도로
생각하시면 될 것같습니다
저 아이가 재료를 가져와준 덕분에
15번과 19번 코드 줄에 있는 Dns와
IPHostEntry 함수를 사용할 수 있게 해주죠
그냥 간단하게 우리 코드 작성하는 사람이
요리사이고 지금 요리를 하려한다고 할 때
using이란 조수가 요리할 재료들과 도구들을
미리 세팅해주는 아이로 생각하시면
쉽게 이해 되실거라 생각합니다
15번 줄의 설명은 다음과 같습니다
myComputer라는 문자열 변수에다가
현재 사용중인 내 컴퓨터의 주소를 가져와
집어넣겠다라는 말입니다
(DNS의 개념에 대해서는 이 글의
마지막부분에서 자세하 다루겠습니다)
그리고 19번 줄로 넘어가면
IPHostEntry가 있는데 이것의 정의는
GetHostByName(), GetHostByAddress(), Resole()
메소드가 반환(return)하는 값들로서 DNS에
대한 정보를 담을 수있는 자료형이라고 생각하시면
될 것같습니다
쉽게 이야기하자면 IP주소, 그 주소의
이름 등의 내용을 담기위해서는
정수를 담는 변수 선언의
int Number처럼 ip를 담는 변수 선언은
IPHostEntry 변수이름;
이렇게 되겠습니다
계속해서 19번줄의 코드를 보시면
그 변수에다 현재 사용중인 내 컴퓨터의
주소를 옮겨 담아 줍니다
출력 결과는 저의 IP주소를 v6과 v4의
형태로 출력하는 출력문인데, 개인적인 정보라
가렸습니다
소스의 모든 해설과 설명은 끝이났습니다
그럼 앞에서 미처 다루지 못했던
DNS에 대한 설명을 이어가겠습니다
사진이 멀리있으니 다시 출력하여
설명을 해보도록 하겠습니다
위의 소스코드 사진에서 15번 줄에서
Dns.GetHostName();이라는 코드가 보입니다
DNS란 Domain Name System의 약자로서
원래라면 숫자들로 가득한 IP주소들을
다른 이름으로 부를 수 있도록 하게 해줍니다
아래의 사진을 참고로 좀 더 쉽게
설명해보도록 하겠습니다
보시다시피 naver의 주소는
210.89.164.90입니다 그러나 인터넷 주소창에
www.naver.com이라고 쓰기만 하면
알아서 저 주소로 찾아가 네이버 화면이
나타나게 됩니다
예를 들자면 우리가 흔히 인터넷 주소창에서
네이버로 접속할 때, 주소창에다가
www.naver.com이라고 입력을 하고 들어갑니다
어느 누구도 210.89.164.90 이렇게 입력하고
네이버에 가는 사람은 정말 보기 드물죠
즉, 사람으로 비유하자면 인터넷 주소창에
사람이름 홍길동을 대부분 검색하지
홍길동의 주민등록번호를 입력해 검색하지 않습니다
허나 컴퓨터는 주민 번호로만 찾아낼 줄 모르는데,
홍길동이라는 이름만 듣고선, 그 홍길동이
내가 아는 홍길동인지, 이름만 같고 내가 모르는 사람인
홍길동인지, 남자인지 여자인지 알 수가 없기에
컴퓨터가 알고 있는 사람들의 이름과 주민등록번호를
적어놓은 수첩을 뒤져봅니다
바로 그 수첩의 역할을 하는게 DNS라고 생각하시면
조금 이해 하시기 편하실거라 생각됩니다
(210.89.164.90이 www.naver.com으로
바꿔주는 아이가 바로 DNS입니다)
이런 DNS가 있기 때문에 인터넷 주소창에다가
www.naver.com이라고만 써도 적어놓았던
수첩을 뒤져서 찾아보고는 "저 naver라는 이름의
주민번호는 210.89.164.90이구나" 라며 그 주민번호로
연결해 naver 홈페이지를 찾아 주는 것입니다
이상 IP 출력 코딩과 DNS의 개념 및 설명에
대한 포스팅을 마치도록 하겠습니다
혹시 다른것에 대해 궁금하신게
있으시다면
댓글에 달아주세요
아는것이면 친절하게 쉽게
모르는것이면 또 제가 알아내서
친절하게 쉽게 포스팅해서
설명해드리겠습니다
'IT - Language > C#' 카테고리의 다른 글
[C#] Thread의 기본 개념과 사용법 (1) | 2018.07.10 |
---|---|
[C#] DataBase 연결 원리와 방법에 대한 설명 (2) | 2018.07.04 |
[C#] 선택문(switch) 개념 및 사용법[1 - 3] (0) | 2018.06.26 |
[C#] 선택문(if) 개념 및 사용법[1 - 2] (0) | 2018.06.26 |
[C#] 배열/다차원 배열(feat.가변배열)의 기본 개념과 사용법 (0) | 2018.06.26 |