인공지능실험실 박사 1학기 장성만 smjang@ai.hannam.ac.kr TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만 smjang@ai.hannam.ac.kr.

Slides:



Advertisements
Similar presentations
이름과 주소 변환 DNS 해결사 함수 정보통신대학 컴퓨터 학과 도희성 Chap. 11.
Advertisements

HANNAM Univ. 제 3 장 주소 체계와 데이터 정렬 Network Lab. Byoung-Son, Choi TCP/IP Socket Programming…
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
Network Lab. Byoung-Son, Choi
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
13장 소켓.
Network Lab. Young-Chul Hwang
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Linux에서의 IP, Port, 네트워크 바이트 순서, 주소 변환 주소 할당 등…
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
Chapter 03. 소켓 주소 구조체 다루기.
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
얇지만 얇지 않은 TCP/IP 소켓 프로그래밍 C 2판
호스트이름과 네트워크이름 찾기 (Hostname and Network Name Lookups)
Internet Address Conversion Functions
3장. 소켓 주소 구조체 다루기 소켓 주소 구조체의 정의와 초기화 방법을 익힌다.
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
11 소켓 프로그래밍 기초.
11 소켓 프로그래밍 기초.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
14장 소켓.
제 12장 I/O멀티플렉싱(Multiplexing)
제 14장 Multicast & Broadcast
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
Socket Address Structure and Byte Ordering Functions
제 14 장 도메인 네임 시스템 정보통신연구실.
Department of Computer Engineering
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
Socket Address Structure and Byte Ordering Functions
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
Internet Address Conversion Functions
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
Department of Computer Science and Engineering
TCP/IP Socket Programming…
Chapter 03. 소켓 주소 구조체 다루기.
Socket Address Structure and Byte Ordering Functions
Internet Address Conversion Functions
Socket Address Structure and Byte Ordering Functions
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
시스템 인터페이스 Lab3 Unix 사용법 실습.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
Internet Address Conversion Functions
School of Electronics and Information. Kyung Hee University.
19. 함수 포인터와 void 포인터.
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
Chapter 16 Socket Interface.
Department of Computer Engineering
Department of Computer Engineering
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Chapter 04. TCP 서버/클라이언트.
Chapter 02. 윈도우 소켓 시작하기.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
Chapter 03. 소켓 주소 구조체 다루기.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
Network Lab. Young-Chul Hwang
13. 포인터와 배열! 함께 이해하기.
Presentation transcript:

인공지능실험실 박사 1학기 장성만 smjang@ai.hannam.ac.kr TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만 smjang@ai.hannam.ac.kr

목차 DNS(Domain Name System) IP 주소와 도메인 이름 사이의 변환 윈도우 기반으로 구현하기

DNS(Domain Name System) 도메인 이름이란?

DNS(Domain Name System) 계층 구조를 가진 분산 데이터 베이스 서버

IP 주소와 도메인 이름 사이의 변환 Gethostbyname() : 도메인 명을 네트워크에서 통용되는 32비트 2진수로 바꾸어 준다. Gethostbyaddr() : 네트워크에서 통용되는 32비트 2진수를 도메인 명으로 바꾸어 준다. Inet_ntoa() : 32비트 2진수로 된 주소를 “.”이 있는 십진수로 변환할 때 사용 Inet_addr() : “.”이 있는 십진수를 32비트 2진수로 변환할 때 사용 202.30.54.66 www.hannam.ac.kr 01111101 01000010 01111110 00001010 gethostbyname() gethostbyaddr() inet_ntoa() inet_addr()

성공 시 hostent 구조체의 포인터, 실패시 NULL포인터 리턴 IP 주소와 도메인 이름 사이의 변환 도메인 이름을 사용해서 IP 주소 얻어내기 Getbyhostname() 인자로 호스트명을 주면 그 호스트에 대한 정보를 구할 수 있다 그 중의 하나가 32비트로 된 IP 주소임. #include <netdb.h> Struct hostent* gethostbyname(const char * name); 성공 시 hostent 구조체의 포인터, 실패시 NULL포인터 리턴 struct hostent { char *h_name; /* Official name of host. */ char **h_aliases; /* Alias list. */ int h_addrtype; /* Host address type. */ int h_length; /* Length of address. */ char **h_addr_list; /* List of addresses from name server. */ };

IP 주소와 도메인 이름 사이의 변환 도메인 이름을 사용해서 IP 주소 얻어내기 if (!host) host = gethostbyname(argv[1]); if (!host) error_handling("gethostbyname() error"); printf("Officially name : %s \n\n", host->h_name); puts("Aliases-------------------------------"); for(i=0;host->h_aliases[1];i++){ puts(host->h_aliases[i]); } printf("Address Type : %s \n", host->h_addrtype==AF_INET? "AF_INET":"AF_INET6"); puts("IP Address-----------------------"); for(i=0; host->h_addr_list[i];i++){ puts(inet_ntoa( *(struct in_addr*)host->h_addr_list[i]));

성공 시 hostent 구조체의 포인터, 실패시 NULL포인터 리턴 IP 주소와 도메인 이름 사이의 변환 IP 주소를 이용해서 도메인 이름 알아내기 #include <netdb.h> Struct hostent* gethostbyaddr(const char * addr, int len, int type); 성공 시 hostent 구조체의 포인터, 실패시 NULL포인터 리턴

IP 주소와 도메인 이름 사이의 변환 IP 주소를 이용해서 도메인 이름 알아내기 host=gethostbyaddr((char*)&addr.sin_addr, 4, AF_INET); if(!host) error_handling("gethostbyaddr() error"); printf("Officially name : %s \n\n", host->h_name); puts("Aliases------------------------"); for(i=0;host->h_aliases[i];i++){ puts(host->h_aliases[i]); } printf("Address Type : %s \n", host->h_addrtype==AF_INET ? "AF_INET":"AF_INET6"); puts("IP Address------------------"); for(i=0; host->h_addr_list[i];i++){ puts(inet_ntoa(*(struct in_addr*)host->h_addr_list[i])); return 0;

IP 주소와 도메인 이름 사이의 변환 윈도우 기반으로 구현하기 #include <winsock2.h> Struct hostent FAR *gethostbyname( const char FAR *name ); 성공 시 0, 실패시 SOCKET_ERROR 리턴 Struct hostent { char FAR * h_name; char FAR * FAR h_aliases; short h_addrtype; short h_length; char FAR * FAR h_addr_list; #include <winsock2.h> Struct hostent FAR *gethostbyaddr( const char FAR *addr, int len, int type ); 성공 시 0, 실패시 SOCKET_ERROR 리턴

참고문헌 “UNIX Network Programming”, W.Richard Stevens “TCP/IP 소켓 프로그래밍”, 윤성우 저

Q & A