IPアドレスからホスト名を取得するには、gethostbyaddr 関数を使用します。
#include <tchar.h>
#include <winsock.h>
#include <iostream>
//---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
//Winsockの初期化
WSADATA wsadata;
if (WSAStartup(MAKEWORD(1, 1), &wsadata)) {
std::cout << "error" << std::endl;
return 0;
}
//IPアドレスからホスト名を取得
unsigned long in = inet_addr("127.0.0.1");
if (in == INADDR_NONE) {
std::cout << "error" << std::endl;
return 0;
}
struct hostent* host = gethostbyaddr((char*)&in, sizeof(in), PF_INET);
if (host == NULL) {
std::cout << "error" << std::endl;
return 0;
}
std::cout << host->h_name << std::endl;
//Winsockの破棄
WSACleanup();
return 0;
}