검색어 입력폼

[분산 처리]소켓을 개설하여 도메인주소 출력, IP 출력

등록일 2006.07.11 | 최종수정일 2015.10.12 한글파일한글 (hwp) | 9페이지 | 가격 1,300원

소개글

분산처리 과목에서 소켓을이용하여 이진수IP, 10진수 IP, 도메인 네임등을 출력한 레포트 입니다!~
유닉스로 실험하였고 C로 짜여져 있습니다.
유닉스를 캡쳐한 실험결과도 캡쳐그림으로 있어서 이해하기 쉬우실 거예요~~
간단한 것이지만 참조 차원에서 많은 도움이 되었으면 좋겠네요 ^^
화이팅!!~

컴파일 실행환경

실행환경 : 유닉스, 언어 : C
-------------------------------------------------
기 능 : 접속한 호스트의 이진 IP주소, 십진 IP주소, 도메인네임 출력
컴파일 : cc -o get_hostInfo get_hostInfo.c
-------------------------------------------------
기 능 : 소켓이 몇개 까지 생성되는지 알아보고, 포트번호는 몇번까지 배정
되는지 확인한다.
컴파일 : cc -o port_number port_number.c -lsocket -lnsl
-------------------------------------------------
기 능 : fork()사용시 부모 프로세스와 자식프로세스가 소켓을 공유할 수
있는지를 확인해 본다.
컴파일 : cc -o fork_socket_test fork_socket_test.c -lsocket -lnsl
-------------------------------------------------
기 능 : IP에서 네트워크주소 입력하면 해당하는 모든 호스트의 도메인 출력
컴파일 : cc -o print_DomainName print_DomainName.c

본문내용

1. 현재 사용 중인 호스트의 이진수 형태의 IP 주소, 점십진법 형태의 IP 주소, 도메인 네임을 출력하는 프로그램을 작성하시오. (힌트: gethostbyname() 이용)

void main(int argc, char *argv[])
{
struct hostent *myhost;
struct in_addr myinaddr; /* IP 주소를 저장할 구조체 */
unsigned long bin_addr;
int i, bin[32]={0};

if(argc < 2)
{
printf("사용법 : %s hostname(도메인네임)\n",argv[0]);
exit(0);
}

/* hostent 구조체 구하기 */
myhost = gethostbyname(argv[1]);

if (myhost == 0)
{
printf("error at gethostbyname \n");
exit(0);
}

/* 호스트 이름 출력 */
printf("Official Host Name : %s\n",myhost->h_name);

/* 호스트 주소를 dotted decimal 형태로 출력 */
i=0;
while(myhost->h_addr_list[i] != NULL)

4. 클래스 C의 인터넷 주소에서 netid 부분의 주소를 입력하면 해당 네트워크에 속하는 모든 호스트의 도메인네임을 출력하는 프로그램을 작성하시오. (예를 들면 203.247.232를 입력하면 203.247.232.1부터 203.247.232.254 사이의 IP 주소를 갖는 모든 호스트의 도메인네임을 출력)

기 능 : IP에서 네트워크주소 입력하면 해당하는 모든 호스트의 도메인 출력
컴파일 : cc -o print_DomainName print_DomainName.c
사용법 : print_DomainName 203.247.224

/* hostent 구하기 */
in.s_addr = inet_addr(tmp); /* 32bit 주소 */
myhost = gethostbyaddr((char *)&(in.s_addr), sizeof(in.s_addr), AF_INET);
if (myhost == NULL) {
printf("Error at gethostbyaddr() \n");
/* exit(0); */
}
else /* 호스트 이름 출력 */
printf("official host name : %s\n", myhost->h_name);
}
}
다운로드 맨위로