본문 바로가기

컴퓨터

gethostbyname

기능

도메인 네임으로부터 IP 주소를 알아낸다.


헤더

WinSock2.h


형태

struct hostent FAR *gethostbyname(const char FAR *name)


리턴

성공 시 hostent 구조체의 포인터, 실패 시 NULL 포인터


예제

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <WinSock2.h>


#define BUFSIZE 30

void ErrorHandling(char *message);


int main(int argc, char **argv) {

WSADATA wsaData;

int i;

struct hostent *host; //HOSTENT* host


if (argc != 2) {

printf("Usage: %s Domain_name\n", argv[0]);

exit(1);

}


if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) /* Load WinSock 2.2 DLL */

ErrorHandling("WSAStartup() error!");


host = gethostbyname(argv[1]);

if (!host)

ErrorHandling("gethost... error!");


printf("Officially name: %s\n", host->h_name);


puts("Aliases-------");

for (i = 0; host->h_aliases[i]; i++) {

puts(host->h_aliases[i]);

}


printf("Address Type: %\n", host->h_addrtype == AF_INET ? "AF_INET" : "AF_INET9");


puts("IP Address----");

for (i = 0; host->h_addr_list[i]; i++) {

puts(inet_ntoa(*(IN_ADDR*)host->h_addr_list[i]));

}

WSACleanup();

return 0;

}


void ErrorHandling(char *message) {

fputs(message, stderr);

fputc('\n', stderr);

exit(1);

}

'컴퓨터' 카테고리의 다른 글

gethostbyaddr  (0) 2019.03.17
hostent  (0) 2019.03.16
shutdown  (0) 2019.03.15
strcmp  (0) 2019.03.15
네트워크 프로토콜과 계층구조  (0) 2019.03.13