Top / Programming / C++Builder / ホスト名からIPアドレスを取得する

ホスト名からIPアドレスを取得する

ホスト名からIPアドレスを取得には、gethostbyname 関数を使用します。

手順

  1. WSAStartup関数で、Winsockの初期化する
  2. gethostbyname 関数で、ホスト名からIPアドレスを取得する
  3. WSACleanup関数で、Winsockの破棄する

ソースコード

#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アドレスを取得
  struct hostent* host = gethostbyname("www.yahoo.co.jp");
  if (host == NULL) {
    std::cout << "error" << std::endl;
  } else {
    struct in_addr in;
    memcpy(&in, host->h_addr, host->h_length);
    std::cout << inet_ntoa(in) << std::endl;
  }

  //Winsockの破棄
  WSACleanup();

  return 0;
}

更新履歴