
gethostbyname 함수는 호스트 이름을 IP 주소로 변환하는 데 사용되지만, deprecated되어 사용을 피할 것을 권장하고 있습니다. 대신 getaddrinfo 함수를 사용하는 것이 좋습니다.
gethostbyname 함수를 사용할 때 주의해야 할 점은 다음과 같습니다.
1. 호스트 이름이 없는 경우: gethostbyname 함수는 호스트 이름이 없는 경우 NULL을 반환합니다. 따라서 호스트 이름이 없는 경우에 대한 예외 처리를 해야 합니다.
2. 호스트 이름이 여러 개인 경우: gethostbyname 함수는 호스트 이름이 여러 개인 경우에 대해 처리하지 못하므로, 여러 개의 호스트 이름을 처리하는 경우에 대비해야 합니다.
3. 호스트 이름이 변경된 경우: 호스트 이름이 변경된 경우 gethostbyname 함수는 이전 호스트 이름을 반환하므로, 호스트 이름이 변경된 경우에 대한 처리를 해야 합니다.
대신 getaddrinfo 함수를 사용할 수 있습니다. getaddrinfo 함수는 호스트 이름을 IP 주소로 변환하는 데 사용되고, deprecated되지 않았습니다.
getaddrinfo 함수를 사용하는 방법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) {
// ...
}
getaddrinfo 함수를 사용할 때 주의해야 할 점은 다음과 같습니다.
1. node: 호스트 이름을 입력합니다.
2. service: 서비스 이름을 입력합니다. (예: 80, http)
3. hints: addrinfo 구조체를 입력합니다. (예: AI_PASSIVE, AI_NUMERICHOST)
4. res: addrinfo 구조체를 입력합니다.
예를 들어, 호스트 이름 "example.com"을 IP 주소로 변환하는 경우 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
c
#include
#include
int main() {
struct addrinfo hints, *res;
int ret;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
ret = getaddrinfo("example.com", NULL, &hints, &res);
if (ret != 0) {
// 오류 처리
}
// IP 주소로 변환된 결과를 사용할 수 있습니다.
freeaddrinfo(res);
return 0;
}
getaddrinfo 함수를 사용하면 deprecated된 gethostbyname 함수를 대신 사용할 수 있습니다.
2025-05-27 18:57