*진*
개인
판매자 정보
- 학교정보
-
입력된 정보가 없습니다.
- 직장정보
-
입력된 정보가 없습니다.
- 자격증
-
판매지수
-
- 판매중 자료수
- 3개
-
- 전체 판매량
- 14개
-
- 최근 3개월 판매량
- 0개
-
- 자료후기 점수
- 평균A+
-
- 자료문의 응답률
- -
전체자료 3개
-
-
Whois 클라이언트 프로그램
-
Internet ProgrammingWhois Client Report#include #include #include #define BUFSIZE 2100// 소켓 함수 오류 출력 후 종료void err_quit(char *msg){LPVOID lpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,NULL, WSAGetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf, 0, NULL);MessageBox(NULL, (LPCTSTR)lpMsgBuf, msg, MB_ICONERROR);LocalFree(lpMsgBuf);exit(-1);}// 소켓 함수 오류 출력void err_display(char *msg){LPVOID lpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,NULL, WSAGetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf, 0, NULL);printf("[%s] %s", msg, (LPCTSTR)lpMsgBuf);LocalFree(lpMsgBuf);}// 사용자 정의 데이터 수신 함수int recvn(SOCKET s, char *buf, int len, int flags){int received;char *ptr = buf;int left = len;while(left > 0){received = recv(s, ptr, left, flags);if(received == SOCKET_ERROR)return SOCKET_ERROR;else if(received == 0)break;left -= received;ptr += received;}return (len - left);}BOOL GetIPAddr(char *name, IN_ADDR *addr){HOSTENT *ptr = gethostbyname(name);if(ptr == NULL){err_display("gethostbyname()");return FALSE;}memcpy(addr, ptr->h_addr, ptr->h_length);return TRUE;}int main(int argc, char* argv[]){int retval;int port = 43;// 윈속 초기화WSADATA wsa;if(WSAStartup(MAKEWORD(2,2), &wsa) != 0)return -1;// socket()SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);if(sock == INVALID_SOCKET) err_quit("socket()");IN_ADDR addr;if(GetIPAddr("whois.krnic.or.kr",&addr)){printf("IP주소 =%s, 포트번호 : %dn", inet_ntoa(addr), port);}// connect()SOCKADDR_IN serveraddr;ZeroMemory(&serveraddr, sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_port = htons(port);serveraddr.sin_addr.s_addr = inet_addr(inet_ntoa(addr));retval = connect(sock, (SOCKADDR *)&serveraddr, sizeof(serveraddr));if(retval == SOCKET_ERROR) err_quit("connect()");// 데이터 통신에 사용할 변수char buf[BUFSIZE+1];int len;// 서버와 데이터 통신while(1){// 데이터 입력ZeroMemory(buf, sizeof(buf));printf("nInput Ip Address of Domain name : ");if(fgets(buf, BUFSIZE+1, stdin) == NULL)break;// 'n' 문자 제거len = strlen(buf);if(buf[len-1] == 'n')strcat(buf,"rn");//buf[len-1] = '