Top / Programming / C++Builder / ローカルコンピュータのホスト名とIPアドレスを取得する

ローカルコンピュータのホスト名とIPアドレスを取得する

ローカルコンピュータのホスト名とIPアドレスを取得する方法です。

全体の流れ

  1. WSAStartupで、Winsockの使用を開始する。
  2. gethostnameで、ホスト名を取得する。
  3. gethostbynameで、ホスト名からIPアドレスを取得する
  4. WSACleanupで、Winsockの使用を終了する

ソースコード

#include <tchar.h>
#include <stdio.h>
#include <winsock.h>
//---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
  WSADATA wsadata;
  if (WSAStartup(MAKEWORD(1, 1), &wsadata) != 0) {
    puts("error");
    return 0;
  }

  //ホスト名を取得する
  char hostname[256];
  if (gethostname(hostname, sizeof(hostname)) != 0) {
    puts("error");
    return 0;
  }
  puts(hostname);

  //ホスト名からIPアドレスを取得する
  HOSTENT* hostend = gethostbyname(hostname);
  if (hostend == NULL) {
    puts("error");
    return 0;
  }
  IN_ADDR inaddr;
  memcpy(&inaddr, hostend->h_addr_list[0], 4);
  char ip[256];
  strcpy(ip, inet_ntoa(inaddr));
  puts(ip);

  WSACleanup();
  return 0;
}

更新履歴